> 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="/pages/ZMql1yrBqvnDbHsldIax#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="/pages/ZMql1yrBqvnDbHsldIax#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="/pages/ZMql1yrBqvnDbHsldIax#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="/pages/ZMql1yrBqvnDbHsldIax#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="/pages/ZMql1yrBqvnDbHsldIax#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="/pages/ZMql1yrBqvnDbHsldIax#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="/pages/ZMql1yrBqvnDbHsldIax#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="/pages/ZMql1yrBqvnDbHsldIax#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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
