> For the complete documentation index, see [llms.txt](https://docs.deso.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.deso.org/deso-backend/construct-transactions/access-groups-api.md).

# Access Groups API

## Create Access Group

<mark style="color:green;">`POST`</mark> `/api/v0/create-access-group`

Prepare an access group transaction to create a new access group. Transaction needs to be signed and submitted through `api/v0/submit-transaction`before changes come into effect.&#x20;

Endpoint implementation in [backend](https://github.com/deso-protocol/backend/blob/v3.1.1/routes/access_group.go#L176).

#### Request Body

| Name                                                                   | Type               | Description                                                                                                                                                                                                                               |
| ---------------------------------------------------------------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| AccessGroupOwnerPublicKeyBase58Check<mark style="color:red;">\*</mark> | String             | Public key of the user creating the access group. This user will be the owner of the access group.                                                                                                                                        |
| AccessGroupPublicKeyBase58Check<mark style="color:red;">\*</mark>      | String             | Public key of the access group that is being created.                                                                                                                                                                                     |
| AccessGroupKeyName<mark style="color:red;">\*</mark>                   | String             | Name of the access group that is being created.                                                                                                                                                                                           |
| MinFeeRateNanosPerKB                                                   | uint64             | Rate per KB                                                                                                                                                                                                                               |
| TransactionFees                                                        | TransactionFee\[]  | <p>Array of</p><p><a data-mention href="/deso-backend/construct-transactions.md#transactionfee">/pages/ZMql1yrBqvnDbHsldIax#transactionfee</a></p><p>objects that define additional outputs that need to be added to this transaction</p> |
| ExtraData                                                              | map\[String]String | arbitrary key value data                                                                                                                                                                                                                  |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
  "TotalInputNanos": 99967828,
  "ChangeAmountNanos": 99967562,
  "FeeNanos": 266,
  "Transaction": {
    "TxInputs": [
      {
        "TxID": [
          200,
          13,
          13,
          151,
          191,
          238,
          44,
          73,
          203,
          166,
          3,
          131,
          33,
          228,
          244,
          13,
          50,
          169,
          228,
          12,
          44,
          74,
          52,
          254,
          114,
          112,
          84,
          50,
          182,
          57,
          30,
          62
        ],
        "Index": 0
      }
    ],
    "TxOutputs": [
      {
        "PublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
        "AmountNanos": 99967562
      }
    ],
    "TxnMeta": {
      "AccessGroupOwnerPublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
      "AccessGroupPublicKey": "AxJsKZRZjnXENR0XCY1fL3kTHwLUu7OLfpJhcxraza2+",
      "AccessGroupKeyName": "ZGVtb2NoYXQ=",
      "AccessGroupOperationType": 2
    },
    "PublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
    "ExtraData": {},
    "Signature": {
      "Sign": null,
      "RecoveryId": 0,
      "IsRecoverable": false
    },
    "TxnTypeJSON": 31
  },
  "TransactionHex": "01c80d0d97bfee2c49cba6038321e4f40d32a9e40c2c4a34fe72705432b6391e3e000102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c45cac4d52f1f4e2102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c452103126c2994598e75c4351d17098d5f2f79131f02d4bbb38b7e9261731adacdadbe0864656d6f63686174022102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c450000"
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

{% endtab %}
{% endtabs %}

## Update Access Group

<mark style="color:green;">`POST`</mark> `/api/v0/update-access-group`

Prepare an access group transaction to update an existing access group. Transaction needs to be signed and submitted through `api/v0/submit-transaction`before changes come into effect.&#x20;

Endpoint implementation in [backend](https://github.com/deso-protocol/backend/blob/v3.1.1/routes/access_group.go#L183).

#### Request Body

| Name                                                                   | Type               | Description                                                                                                                                                                                                                               |
| ---------------------------------------------------------------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| AccessGroupOwnerPublicKeyBase58Check<mark style="color:red;">\*</mark> | String             | Public key of the user updating their access group. This must be the access group owner.                                                                                                                                                  |
| AccessGroupPublicKeyBase58Check<mark style="color:red;">\*</mark>      | String             | Public key of the access group that is being updated.                                                                                                                                                                                     |
| AccessGroupKeyName<mark style="color:red;">\*</mark>                   | String             | Name of the access group that is being updated.                                                                                                                                                                                           |
| MinFeeRateNanosPerKB                                                   | uint64             | Rate per KB                                                                                                                                                                                                                               |
| TransactionFees                                                        | TransactionFee\[]  | <p>Array of</p><p><a data-mention href="/deso-backend/construct-transactions.md#transactionfee">/pages/ZMql1yrBqvnDbHsldIax#transactionfee</a></p><p>objects that define additional outputs that need to be added to this transaction</p> |
| ExtraData                                                              | map\[String]String | arbitrary key value data                                                                                                                                                                                                                  |

{% tabs %}
{% tab title="200: OK Coming soon!" %}

```javascript
{
  "TotalInputNanos": 99967828,
  "ChangeAmountNanos": 99967562,
  "FeeNanos": 266,
  "Transaction": {
    "TxInputs": [
      {
        "TxID": [
          200,
          13,
          13,
          151,
          191,
          238,
          44,
          73,
          203,
          166,
          3,
          131,
          33,
          228,
          244,
          13,
          50,
          169,
          228,
          12,
          44,
          74,
          52,
          254,
          114,
          112,
          84,
          50,
          182,
          57,
          30,
          62
        ],
        "Index": 0
      }
    ],
    "TxOutputs": [
      {
        "PublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
        "AmountNanos": 99967562
      }
    ],
    "TxnMeta": {
      "AccessGroupOwnerPublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
      "AccessGroupPublicKey": "AxJsKZRZjnXENR0XCY1fL3kTHwLUu7OLfpJhcxraza2+",
      "AccessGroupKeyName": "ZGVtb2NoYXQ=",
      "AccessGroupOperationType": 3
    },
    "PublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
    "ExtraData": {},
    "Signature": {
      "Sign": null,
      "RecoveryId": 0,
      "IsRecoverable": false
    },
    "TxnTypeJSON": 31
  },
  "TransactionHex": "01c80d0d97bfee2c49cba6038321e4f40d32a9e40c2c4a34fe72705432b6391e3e000102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c45cac4d52f1f4e2102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c452103126c2994598e75c4351d17098d5f2f79131f02d4bbb38b7e9261731adacdadbe0864656d6f63686174022102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c450000"
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

{% endtab %}
{% endtabs %}

## Add Access Group Members

<mark style="color:green;">`POST`</mark> `/api/v0/add-access-group-members`

Prepare an access group member transaction to add new members to an access group. Transaction needs to be signed and submitted through `api/v0/submit-transaction` before changes come into effect.

Endpoint implementation in [backend](https://github.com/deso-protocol/backend/blob/v3.1.1/routes/access_group.go#L435).

#### Request Body

| Name                                                                   | Type                 | Description                                                                                                                                                                                                                               |
| ---------------------------------------------------------------------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| AccessGroupOwnerPublicKeyBase58Check<mark style="color:red;">\*</mark> | String               | Public key of the access group owner. Must be the public key signing this transaction.                                                                                                                                                    |
| AccessGroupKeyName<mark style="color:red;">\*</mark>                   | String               | Name of the access group to which the members will be added.                                                                                                                                                                              |
| AccessGroupMemberList<mark style="color:red;">\*</mark>                | AccessGroupMember\[] | <p>Array of</p><p><a data-mention href="/deso-backend/construct-transactions.md#accessgroupmember">/pages/ZMql1yrBqvnDbHsldIax#accessgroupmember</a></p><p>objects representing the users to be added to the access group.</p>            |
| MinFeeRateNanosPerKB                                                   | uint64               | Rate per KB                                                                                                                                                                                                                               |
| TransactionFees                                                        | TransactionFee\[]    | <p>Array of</p><p><a data-mention href="/deso-backend/construct-transactions.md#transactionfee">/pages/ZMql1yrBqvnDbHsldIax#transactionfee</a></p><p>objects that define additional outputs that need to be added to this transaction</p> |
| ExtraData                                                              | map\[String]String   | arbitrary key value data                                                                                                                                                                                                                  |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
  "TotalInputNanos": 99967562,
  "ChangeAmountNanos": 99966522,
  "FeeNanos": 1040,
  "Transaction": {
    "TxInputs": [
      {
        "TxID": [
          128,
          156,
          232,
          236,
          161,
          203,
          117,
          179,
          124,
          43,
          53,
          142,
          175,
          117,
          106,
          235,
          241,
          60,
          176,
          22,
          120,
          33,
          81,
          146,
          181,
          10,
          226,
          106,
          73,
          216,
          212,
          79
        ],
        "Index": 0
      }
    ],
    "TxOutputs": [
      {
        "PublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
        "AmountNanos": 99966522
      }
    ],
    "TxnMeta": {
      "AccessGroupOwnerPublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
      "AccessGroupKeyName": "ZGVtb2NoYXQ=",
      "AccessGroupMembersList": [
        {
          "AccessGroupMemberPublicKey": "ApOA89iQNICFoi4H2Nqtnx83BnZ7/dWTN2QcTTIxBGUJ",
          "AccessGroupMemberKeyName": "ZGVmYXVsdC1rZXk=",
          "EncryptedKey": "MDRjZDUyN2RmZGZmMzVmODY0NDkwOTY4MTY1ZWY3ZTM0YTNjYjAwOWFiY2JkZTg2MDE2OTgzNGNhYzg4Yzk4Y2VjMTkyZjY2MWMyNjdkYzY2YmE2ZGVkNDZiOWVmMDczNTllMTc0ZDRmZWE4NzA1MmU4M2YxNzhjYjU0OTE0NWY4NTlhOTMzOGZhOGY0NjU3ZTc0ZmYyMjYxNDJmNDdmYmM0YzRhYWQ2MWNhOThmOGUyZjkwZWY0NTliYWFiYjg2ZWIyYjFhMTM3OGNhMmE2ODA0MWU5OTYwM2NhYzMzMDlhNzQ3ZDMwYzQzYmZiN2E1ODRhNzY4MjY1MGJlOGFhNDliNTU0NzBmNDJmOTQwN2FmMmVlMWNmY2ZkMDY5NzQ1MDQ2OTVkZmQzODNjYmU3ZDhlZmZkYTNmZTgxNWI3Njc1NzQzZjdkZTMyYmIzYTc1MzE4NzRmNjkwNGFlYmIxZjgw",
          "ExtraData": {}
        },
        {
          "AccessGroupMemberPublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
          "AccessGroupMemberKeyName": "ZGVmYXVsdC1rZXk=",
          "EncryptedKey": "MDRhYjUzNmFiNWMwOWEyOWExYWE1MzkzNmQ2ZmUzNGY2M2Y1YTgwNTVmODE3YjYzMThhOGM5NzNkOTM2NTM1ZjMxM2FiNzE5N2Q3OWUwNTE3Yjk0OWE1NTc0ZDUwZjk1Mzk1MDk1NTYwNTM4ZTgwMDdjZDM5YTgzZjE0MTYyODU1NGY4Mjk5OTdiNWMzYTYyNjNhN2Q3M2RhZjE3MWZjMmQwNThiZDZkZjUxMmNiN2NhN2ZmMGNlY2E5MzM1N2IyNjhlNTFiY2MxZWRhNTFjNzUwYTY2NTA1YmYzY2Q3NWFhMjgxZGU2MDM3ZTExNjY2ZGI5YzJlNzAwMTA3YTE3NmFmMzVmYTM2OGE3ZGQ2ODNiMGQyYjJlZGM0OWRkMmJlMmRkYjk0YTkzMDdkYWNhZGMxZWM3NTJkN2I2OTM2M2Y5MThiMzAwMmU2MTEzMGY5ODRiY2I5ODM4Y2IxZTM3ODg3",
          "ExtraData": {}
        }
      ],
      "AccessGroupMemberOperationType": 2
    },
    "PublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
    "ExtraData": {},
    "Signature": {
      "Sign": null,
      "RecoveryId": 0,
      "IsRecoverable": false
    },
    "TxnTypeJSON": 32
  },
  "TransactionHex": "01809ce8eca1cb75b37c2b358eaf756aebf13cb01678215192b50ae26a49d8d44f000102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c45babcd52f20d3062102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c450864656d6f636861740221029380f3d890348085a22e07d8daad9f1f3706767bfdd59337641c4d32310465090b64656661756c742d6b6579e202303463643532376466646666333566383634343930393638313635656637653334613363623030396162636264653836303136393833346361633838633938636563313932663636316332363764633636626136646564343662396566303733353965313734643466656138373035326538336631373863623534393134356638353961393333386661386634363537653734666632323631343266343766626334633461616436316361393866386532663930656634353962616162623836656232623161313337386361326136383034316539393630336361633333303961373437643330633433626662376135383461373638323635306265386161343962353534373066343266393430376166326565316366636664303639373435303436393564666433383363626537643865666664613366653831356237363735373433663764653332626233613735333138373466363930346165626231663830002102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c450b64656661756c742d6b6579e20230346162353336616235633039613239613161613533393336643666653334663633663561383035356638313762363331386138633937336439333635333566333133616237313937643739653035313762393439613535373464353066393533393530393535363035333865383030376364333961383366313431363238353534663832393939376235633361363236336137643733646166313731666332643035386264366466353132636237636137666630636563613933333537623236386535316263633165646135316337353061363635303562663363643735616132383164653630333765313136363664623963326537303031303761313736616633356661333638613764643638336230643262326564633439646432626532646462393461393330376461636164633165633735326437623639333633663931386233303032653631313330663938346263623938333863623165333738383700022102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c450000"
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

{% endtab %}
{% endtabs %}

## Remove Access Group Members

<mark style="color:green;">`POST`</mark> `/api/v0/remove-access-group-members`

Prepare an access group member transaction to remove members from an access group. Transaction needs to be signed and submitted through `api/v0/submit-transaction` before changes come into effect.&#x20;

Endpoint implementation in [backend](https://github.com/deso-protocol/backend/blob/v3.1.1/routes/access_group.go#L442).

#### Request Body

| Name                                                                   | Type                 | Description                                                                                                                                                                                                                                                                                                                               |
| ---------------------------------------------------------------------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| AccessGroupOwnerPublicKeyBase58Check<mark style="color:red;">\*</mark> | String               | Public key of the access group owner. Must be the public key signing this transaction.                                                                                                                                                                                                                                                    |
| AccessGroupKeyName<mark style="color:red;">\*</mark>                   | String               | Name of the access group from which the members will be removed.                                                                                                                                                                                                                                                                          |
| AccessGroupMemberList<mark style="color:red;">\*</mark>                | AccessGroupMember\[] | <p>Array of</p><p><a data-mention href="/deso-backend/construct-transactions.md#accessgroupmember">/pages/ZMql1yrBqvnDbHsldIax#accessgroupmember</a></p><p>objects representing the users to be removed from the access group. Please note that EncryptedKey and ExtraData must be excluded from these objects when removing members.</p> |
| MinFeeRateNanosPerKB                                                   | uint64               | Rate per KB                                                                                                                                                                                                                                                                                                                               |
| TransactionFees                                                        | TransactionFee\[]    | <p>Array of</p><p><a data-mention href="/deso-backend/construct-transactions.md#transactionfee">/pages/ZMql1yrBqvnDbHsldIax#transactionfee</a></p><p>objects that define additional outputs that need to be added to this transaction</p>                                                                                                 |
| ExtraData                                                              | map\[String]String   | arbitrary key value data                                                                                                                                                                                                                                                                                                                  |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
  "TotalInputNanos": 99967562,
  "ChangeAmountNanos": 99966522,
  "FeeNanos": 1040,
  "Transaction": {
    "TxInputs": [
      {
        "TxID": [
          128,
          156,
          232,
          236,
          161,
          203,
          117,
          179,
          124,
          43,
          53,
          142,
          175,
          117,
          106,
          235,
          241,
          60,
          176,
          22,
          120,
          33,
          81,
          146,
          181,
          10,
          226,
          106,
          73,
          216,
          212,
          79
        ],
        "Index": 0
      }
    ],
    "TxOutputs": [
      {
        "PublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
        "AmountNanos": 99966522
      }
    ],
    "TxnMeta": {
      "AccessGroupOwnerPublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
      "AccessGroupKeyName": "ZGVtb2NoYXQ=",
      "AccessGroupMembersList": [
        {
          "AccessGroupMemberPublicKey": "ApOA89iQNICFoi4H2Nqtnx83BnZ7/dWTN2QcTTIxBGUJ",
          "AccessGroupMemberKeyName": "ZGVmYXVsdC1rZXk=",
          "EncryptedKey": "",
          "ExtraData": {}
        },
        {
          "AccessGroupMemberPublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
          "AccessGroupMemberKeyName": "ZGVmYXVsdC1rZXk=",
          "EncryptedKey": "",
          "ExtraData": {}
        }
      ],
      "AccessGroupMemberOperationType": 3
    },
    "PublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
    "ExtraData": {},
    "Signature": {
      "Sign": null,
      "RecoveryId": 0,
      "IsRecoverable": false
    },
    "TxnTypeJSON": 32
  },
  "TransactionHex": "01809ce8eca1cb75b37c2b358eaf756aebf13cb01678215192b50ae26a49d8d44f000102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c45babcd52f20d3062102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c450864656d6f636861740221029380f3d890348085a22e07d8daad9f1f3706767bfdd59337641c4d32310465090b64656661756c742d6b6579e202303463643532376466646666333566383634343930393638313635656637653334613363623030396162636264653836303136393833346361633838633938636563313932663636316332363764633636626136646564343662396566303733353965313734643466656138373035326538336631373863623534393134356638353961393333386661386634363537653734666632323631343266343766626334633461616436316361393866386532663930656634353962616162623836656232623161313337386361326136383034316539393630336361633333303961373437643330633433626662376135383461373638323635306265386161343962353534373066343266393430376166326565316366636664303639373435303436393564666433383363626537643865666664613366653831356237363735373433663764653332626233613735333138373466363930346165626231663830002102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c450b64656661756c742d6b6579e20230346162353336616235633039613239613161613533393336643666653334663633663561383035356638313762363331386138633937336439333635333566333133616237313937643739653035313762393439613535373464353066393533393530393535363035333865383030376364333961383366313431363238353534663832393939376235633361363236336137643733646166313731666332643035386264366466353132636237636137666630636563613933333537623236386535316263633165646135316337353061363635303562663363643735616132383164653630333765313136363664623963326537303031303761313736616633356661333638613764643638336230643262326564633439646432626532646462393461393330376461636164633165633735326437623639333633663931386233303032653631313330663938346263623938333863623165333738383700022102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c450000"
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

{% endtab %}
{% endtabs %}

## Update Access Group Members

<mark style="color:green;">`POST`</mark> `/api/v0/update-access-group-members`

Prepare an access group member transaction to update a member in an access group. Note that you can only update the EncryptedKey and ExtraData attributes of an AccessGroupMember's entry. If you need to change the AccessGroupMemberKeyName, you'll need to remove and re-add them. Transaction needs to be signed and submitted through `api/v0/submit-transaction` before changes come into effect.&#x20;

Endpoint implementation in [backend](https://github.com/deso-protocol/backend/blob/v3.1.1/routes/access_group.go#L449).

#### Request Body

| Name                                                                   | Type                 | Description                                                                                                                                                                                                                               |
| ---------------------------------------------------------------------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| AccessGroupOwnerPublicKeyBase58Check<mark style="color:red;">\*</mark> | String               | Public key of the access group owner. Must be the public key signing this transaction.                                                                                                                                                    |
| AccessGroupKeyName<mark style="color:red;">\*</mark>                   | String               | Name of the access group in which the members will be updated.                                                                                                                                                                            |
| AccessGroupMemberList<mark style="color:red;">\*</mark>                | AccessGroupMember\[] | <p>Array of</p><p><a data-mention href="/deso-backend/construct-transactions.md#accessgroupmember">/pages/ZMql1yrBqvnDbHsldIax#accessgroupmember</a></p><p>objects representing the users to be updated in this access group.</p>         |
| MinFeeRateNanosPerKB                                                   | uint64               | Rate per KB                                                                                                                                                                                                                               |
| TransactionFees                                                        | TransactionFee\[]    | <p>Array of</p><p><a data-mention href="/deso-backend/construct-transactions.md#transactionfee">/pages/ZMql1yrBqvnDbHsldIax#transactionfee</a></p><p>objects that define additional outputs that need to be added to this transaction</p> |
| ExtraData                                                              | map\[String]String   | arbitrary key value data                                                                                                                                                                                                                  |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
  "TotalInputNanos": 99967562,
  "ChangeAmountNanos": 99966522,
  "FeeNanos": 1040,
  "Transaction": {
    "TxInputs": [
      {
        "TxID": [
          128,
          156,
          232,
          236,
          161,
          203,
          117,
          179,
          124,
          43,
          53,
          142,
          175,
          117,
          106,
          235,
          241,
          60,
          176,
          22,
          120,
          33,
          81,
          146,
          181,
          10,
          226,
          106,
          73,
          216,
          212,
          79
        ],
        "Index": 0
      }
    ],
    "TxOutputs": [
      {
        "PublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
        "AmountNanos": 99966522
      }
    ],
    "TxnMeta": {
      "AccessGroupOwnerPublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
      "AccessGroupKeyName": "ZGVtb2NoYXQ=",
      "AccessGroupMembersList": [
        {
          "AccessGroupMemberPublicKey": "ApOA89iQNICFoi4H2Nqtnx83BnZ7/dWTN2QcTTIxBGUJ",
          "AccessGroupMemberKeyName": "ZGVmYXVsdC1rZXk=",
          "EncryptedKey": "MDRjZDUyN2RmZGZmMzVmODY0NDkwOTY4MTY1ZWY3ZTM0YTNjYjAwOWFiY2JkZTg2MDE2OTgzNGNhYzg4Yzk4Y2VjMTkyZjY2MWMyNjdkYzY2YmE2ZGVkNDZiOWVmMDczNTllMTc0ZDRmZWE4NzA1MmU4M2YxNzhjYjU0OTE0NWY4NTlhOTMzOGZhOGY0NjU3ZTc0ZmYyMjYxNDJmNDdmYmM0YzRhYWQ2MWNhOThmOGUyZjkwZWY0NTliYWFiYjg2ZWIyYjFhMTM3OGNhMmE2ODA0MWU5OTYwM2NhYzMzMDlhNzQ3ZDMwYzQzYmZiN2E1ODRhNzY4MjY1MGJlOGFhNDliNTU0NzBmNDJmOTQwN2FmMmVlMWNmY2ZkMDY5NzQ1MDQ2OTVkZmQzODNjYmU3ZDhlZmZkYTNmZTgxNWI3Njc1NzQzZjdkZTMyYmIzYTc1MzE4NzRmNjkwNGFlYmIxZjgw",
          "ExtraData": {}
        },
        {
          "AccessGroupMemberPublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
          "AccessGroupMemberKeyName": "ZGVmYXVsdC1rZXk=",
          "EncryptedKey": "MDRhYjUzNmFiNWMwOWEyOWExYWE1MzkzNmQ2ZmUzNGY2M2Y1YTgwNTVmODE3YjYzMThhOGM5NzNkOTM2NTM1ZjMxM2FiNzE5N2Q3OWUwNTE3Yjk0OWE1NTc0ZDUwZjk1Mzk1MDk1NTYwNTM4ZTgwMDdjZDM5YTgzZjE0MTYyODU1NGY4Mjk5OTdiNWMzYTYyNjNhN2Q3M2RhZjE3MWZjMmQwNThiZDZkZjUxMmNiN2NhN2ZmMGNlY2E5MzM1N2IyNjhlNTFiY2MxZWRhNTFjNzUwYTY2NTA1YmYzY2Q3NWFhMjgxZGU2MDM3ZTExNjY2ZGI5YzJlNzAwMTA3YTE3NmFmMzVmYTM2OGE3ZGQ2ODNiMGQyYjJlZGM0OWRkMmJlMmRkYjk0YTkzMDdkYWNhZGMxZWM3NTJkN2I2OTM2M2Y5MThiMzAwMmU2MTEzMGY5ODRiY2I5ODM4Y2IxZTM3ODg3",
          "ExtraData": {}
        }
      ],
      "AccessGroupMemberOperationType": 4
    },
    "PublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
    "ExtraData": {},
    "Signature": {
      "Sign": null,
      "RecoveryId": 0,
      "IsRecoverable": false
    },
    "TxnTypeJSON": 32
  },
  "TransactionHex": "01809ce8eca1cb75b37c2b358eaf756aebf13cb01678215192b50ae26a49d8d44f000102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c45babcd52f20d3062102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c450864656d6f636861740221029380f3d890348085a22e07d8daad9f1f3706767bfdd59337641c4d32310465090b64656661756c742d6b6579e202303463643532376466646666333566383634343930393638313635656637653334613363623030396162636264653836303136393833346361633838633938636563313932663636316332363764633636626136646564343662396566303733353965313734643466656138373035326538336631373863623534393134356638353961393333386661386634363537653734666632323631343266343766626334633461616436316361393866386532663930656634353962616162623836656232623161313337386361326136383034316539393630336361633333303961373437643330633433626662376135383461373638323635306265386161343962353534373066343266393430376166326565316366636664303639373435303436393564666433383363626537643865666664613366653831356237363735373433663764653332626233613735333138373466363930346165626231663830002102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c450b64656661756c742d6b6579e20230346162353336616235633039613239613161613533393336643666653334663633663561383035356638313762363331386138633937336439333635333566333133616237313937643739653035313762393439613535373464353066393533393530393535363035333865383030376364333961383366313431363238353534663832393939376235633361363236336137643733646166313731666332643035386264366466353132636237636137666630636563613933333537623236386535316263633165646135316337353061363635303562663363643735616132383164653630333765313136363664623963326537303031303761313736616633356661333638613764643638336230643262326564633439646432626532646462393461393330376461636164633165633735326437623639333633663931386233303032653631313330663938346263623938333863623165333738383700022102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c450000"
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.deso.org/deso-backend/construct-transactions/access-groups-api.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
