> For the complete documentation index, see [llms.txt](/llms.txt).

# Account Management API

Dapps can communicate with [account management Snaps](/snaps/features/custom-evm-accounts/)using the Account Management API. The dapp must be [allowed to call each method](/snaps/features/custom-evm-accounts/security/#limit-the-methods-exposed-to-dapps).

## Account methods[​](#account-methods "Direct link to Account methods")

The following methods are exposed by the Snap for account management.

### `keyring_createAccount`[​](#keyring%5Fcreateaccount "Direct link to keyring_createaccount")

Creates a new account.

#### Parameters[​](#parameters "Direct link to Parameters")

An object containing:

- `options`: `Record<string, Json>` - Snap-defined account options.

#### Returns[​](#returns "Direct link to Returns")

[An account object.](/snaps/reference/keyring-api/account-management/objects/#keyringaccount)

#### Example[​](#example "Direct link to Example")

- Request
- Response

```
{
  "method": "keyring_createAccount",
  "params": {
    "options": {
      "signerCount": 5,
      "threshold": 3
    }
  }
}

```

```
{
  "address": "0xd1f5279be4b4dd94133a23dee1b23f5bfc0db1d0",
  "id": "091bbc2e-6625-44d0-ac5c-658670ca649a",
  "methods": ["eth_sign", "eth_signTransaction", "eth_signTypedData_v4", "personal_sign"],
  "options": {
    "signerCount": 5,
    "threshold": 3
  },
  "type": "eip155:eoa"
}

```

### `keyring_deleteAccount`[​](#keyring%5Fdeleteaccount "Direct link to keyring_deleteaccount")

Deletes an existing account.

#### Parameters[​](#parameters-1 "Direct link to Parameters")

An object containing:

- `id`: `string` - ID of the account to be deleted (UUIDv4).

#### Returns[​](#returns-1 "Direct link to Returns")

`null`

#### Example[​](#example-1 "Direct link to Example")

- Request
- Response

```
{
  "method": "keyring_deleteAccount",
  "params": {
    "id": "091bbc2e-6625-44d0-ac5c-658670ca649a"
  }
}

```

```
null

```

### `keyring_exportAccount`[​](#keyring%5Fexportaccount "Direct link to keyring_exportaccount")

Exports account data managed by the Snap. This might include the public key, address, or derivation path. The exact data exported depends on the Snap's implementation and security considerations. A Snap might choose to not support this method or limit the data it exports.

warning

This method can export private keys or any other sensitive data.

#### Parameters[​](#parameters-2 "Direct link to Parameters")

An object containing:

- `id`: `string` - ID of the account to be exported (UUIDv4).

#### Returns[​](#returns-2 "Direct link to Returns")

An object containing the account data.

#### Example[​](#example-2 "Direct link to Example")

- Request
- Response

```
{
  "method": "keyring_exportAccount",
  "params": {
    "id": "091bbc2e-6625-44d0-ac5c-658670ca649a"
  }
}

```

```
{
  "privateKey": "66a41d66be6483f1fdfd01fdb66173d449594bbd286149b019504dd72b58bc51"
}

```

### `keyring_filterAccountChains`[​](#keyring%5Ffilteraccountchains "Direct link to keyring_filteraccountchains")

Filters for blockchain networks that an account can be used on.

#### Parameters[​](#parameters-3 "Direct link to Parameters")

An object containing:

- `id`: `string` - Account ID (UUIDv4).
- `chains`: `string[]` - List of [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md)chain IDs of blockchain networks to filter.

#### Returns[​](#returns-3 "Direct link to Returns")

An object containing:

- `chains`: `string[]` - List of [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md)chain IDs of blockchain networks that the account can be used on.

#### Example[​](#example-3 "Direct link to Example")

- Request
- Response

```
{
  "method": "keyring_filterAccountChains",
  "params": {
    "id": "091bbc2e-6625-44d0-ac5c-658670ca649a",
    "chains": ["eip155:W", "eip155:X", "eip155:Y", "eip155:Z"]
  }
}

```

```
{
  "chains": ["eip155:X", "eip155:Y"]
}

```

### `keyring_getAccount`[​](#keyring%5Fgetaccount "Direct link to keyring_getaccount")

Gets an account from an ID.

#### Parameters[​](#parameters-4 "Direct link to Parameters")

An object containing:

- `id`: `string` - Account ID (UUIDv4).

#### Returns[​](#returns-4 "Direct link to Returns")

[An account object.](/snaps/reference/keyring-api/account-management/objects/#keyringaccount)

#### Example[​](#example-4 "Direct link to Example")

- Request
- Response

```
{
  "method": "keyring_getAccount",
  "params": {
    "id": "091bbc2e-6625-44d0-ac5c-658670ca649a"
  }
}

```

```
{
  "address": "0xd1f5279be4b4dd94133a23dee1b23f5bfc0db1d0",
  "id": "091bbc2e-6625-44d0-ac5c-658670ca649a",
  "methods": ["eth_sign", "eth_signTransaction", "eth_signTypedData_v4", "personal_sign"],
  "options": {
    "signerCount": 5,
    "threshold": 3
  },
  "type": "eip155:eoa"
}

```

### `keyring_listAccounts`[​](#keyring%5Flistaccounts "Direct link to keyring_listaccounts")

Lists all accounts handled by the Snap.

#### Parameters[​](#parameters-5 "Direct link to Parameters")

None

#### Returns[​](#returns-5 "Direct link to Returns")

An array of [account objects](/snaps/reference/keyring-api/account-management/objects/#keyringaccount) handled by the Snap.

#### Example[​](#example-5 "Direct link to Example")

- Request
- Response

```
{
  "method": "keyring_listAccounts"
}

```

```
[
  {
    "address": "0xd1f5279be4b4dd94133a23dee1b23f5bfc0db1d0",
    "id": "091bbc2e-6625-44d0-ac5c-658670ca649a",
    "methods": ["eth_sign", "eth_signTransaction", "eth_signTypedData_v4", "personal_sign"],
    "options": {
      "signerCount": 5,
      "threshold": 3
    },
    "type": "eip155:eoa"
  },
  {
    "address": "0x84674cffb6146d19b986fc88ec70a441b570a45b",
    "id": "17a87b4a-286c-444d-aebb-1fed89021419",
    "methods": ["eth_prepareUserOperation", "eth_patchUserOperation", "eth_signUserOperation"],
    "type": "eip155:erc4337"
  }
]

```

### `keyring_updateAccount`[​](#keyring%5Fupdateaccount "Direct link to keyring_updateaccount")

Updates an account.

#### Parameters[​](#parameters-6 "Direct link to Parameters")

[An account object.](/snaps/reference/keyring-api/account-management/objects/#keyringaccount)

#### Returns[​](#returns-6 "Direct link to Returns")

`null`

#### Example[​](#example-6 "Direct link to Example")

- Request
- Response

```
{
  "method": "keyring_updateAccount",
  "params": {
    "address": "0xd1f5279be4b4dd94133a23dee1b23f5bfc0db1d0",
    "id": "091bbc2e-6625-44d0-ac5c-658670ca649a",
    "methods": ["eth_sign", "eth_signTransaction", "eth_signTypedData_v4", "personal_sign"],
    "options": {
      "signerCount": 7,
      "threshold": 4
    },
    "type": "eip155:eoa"
  }
}

```

```
null

```

## Request methods[​](#request-methods "Direct link to Request methods")

The following methods are exposed by the Snap for managing signature requests.

### `keyring_approveRequest`[​](#keyring%5Fapproverequest "Direct link to keyring_approverequest")

Approves a pending request.

#### Parameters[​](#parameters-7 "Direct link to Parameters")

An object containing:

- `id`: `string` - Request ID.
- `data`: `Record<string, Json>` - Optional Snap-defined arguments.

#### Returns[​](#returns-7 "Direct link to Returns")

`null`

#### Example[​](#example-7 "Direct link to Example")

- Request
- Response

```
{
  "method": "keyring_approveRequest",
  "params": {
    "id": "f84d3a97-b6e1-47ea-8b0c-fd8609efaad4"
  }
}

```

```
null

```

### `keyring_getRequest`[​](#keyring%5Fgetrequest "Direct link to keyring_getrequest")

Gets a request from an ID.

#### Parameters[​](#parameters-8 "Direct link to Parameters")

An object containing:

- `id`: `string` - Request ID.

#### Returns[​](#returns-8 "Direct link to Returns")

[A request object.](/snaps/reference/keyring-api/account-management/objects/#keyringrequest)

#### Example[​](#example-8 "Direct link to Example")

- Request
- Response

```
{
  "method": "keyring_getRequest",
  "params": {
    "id": "f84d3a97-b6e1-47ea-8b0c-fd8609efaad4"
  }
}

```

```
{
  "address": "0xd1f5279be4b4dd94133a23dee1b23f5bfc0db1d0",
  "id": "f84d3a97-b6e1-47ea-8b0c-fd8609efaad4",
  "request": {
    "method": "personal_sign",
    "params": [
      "0x4578616d706c652060706572736f6e616c5f7369676e60206d657373616765",
      "0xe887f3b50232722e6eb4c1d3a03b34c9b345acd1"
    ]
  },
  "scope": "eip155:1"
}

```

### `keyring_listRequests`[​](#keyring%5Flistrequests "Direct link to keyring_listrequests")

Lists all pending requests.

#### Parameters[​](#parameters-9 "Direct link to Parameters")

None

#### Returns[​](#returns-9 "Direct link to Returns")

An array of pending [request objects](/snaps/reference/keyring-api/account-management/objects/#keyringrequest).

#### Example[​](#example-9 "Direct link to Example")

- Request
- Response

```
{
  "method": "keyring_listRequests"
}

```

```
[
  {
    "account": "0xd1f5279be4b4dd94133a23dee1b23f5bfc0db1d0",
    "id": "f84d3a97-b6e1-47ea-8b0c-fd8609efaad4",
    "request": {
      "method": "personal_sign",
      "params": [
        "0x4578616d706c652060706572736f6e616c5f7369676e60206d657373616765",
        "0xe887f3b50232722e6eb4c1d3a03b34c9b345acd1"
      ]
    },
    "scope": "eip155:1"
  },
  {
    "account": "0xe887f3b50232722e6eb4c1d3a03b34c9b345acd1",
    "id": "f6f302ae-38d7-4b95-ae88-bf2fb7fbee87",
    "request": {
      "method": "eth_sendTransaction",
      "params": [
        {
          "from": "0xe887f3b50232722e6eb4c1d3a03b34c9b345acd1",
          "nonce": "0x1",
          "gasPrice": "0x10",
          "gasLimit": "0x5208",
          "to": "0x84674cffb6146d19b986fc88ec70a441b570a45b",
          "value": "0x10000",
          "data": "0x"
        }
      ]
    },
    "scope": "eip155:1"
  }
]

```

### `keyring_rejectRequest`[​](#keyring%5Frejectrequest "Direct link to keyring_rejectrequest")

Rejects a pending request and removes it from the list of pending requests.

#### Parameters[​](#parameters-10 "Direct link to Parameters")

An object containing:

- `id`: `string` - Request ID.

#### Returns[​](#returns-10 "Direct link to Returns")

`null`

#### Example[​](#example-10 "Direct link to Example")

- Request
- Response

```
{
  "method": "keyring_rejectRequest",
  "params": {
    "id": "f84d3a97-b6e1-47ea-8b0c-fd8609efaad4"
  }
}

```

```
null

```

### `keyring_submitRequest`[​](#keyring%5Fsubmitrequest "Direct link to keyring_submitrequest")

Submits a new request.

#### Parameters[​](#parameters-11 "Direct link to Parameters")

[A request object.](/snaps/reference/keyring-api/account-management/objects/#keyringrequest)

#### Returns[​](#returns-11 "Direct link to Returns")

If the request is [synchronous](/snaps/features/custom-evm-accounts/#synchronous-transaction-flow), `keyring_submitRequest` returns an object containing:

- `pending` - `false` to indicate a synchronous request.
- `result`: `Json` - Request result.

If the request is [asynchronous](/snaps/features/custom-evm-accounts/#asynchronous-transaction-flow), `keyring_submitRequest` returns an object containing:

- `pending` - `true` to indicate that the request will be handled asynchronously.
- `redirect` - An optional redirect object containing:  
  - `message`: `string` - Redirect message.
  - `url`: `string` - Redirect URL.

#### Example[​](#example-11 "Direct link to Example")

- Request
- Response

```
{
  "method": "keyring_submitRequest",
  "params": {
    "address": "0xd1f5279be4b4dd94133a23dee1b23f5bfc0db1d0",
    "id": "f84d3a97-b6e1-47ea-8b0c-fd8609efaad4",
    "request": {
      "method": "personal_sign",
      "params": [
        "0x4578616d706c652060706572736f6e616c5f7369676e60206d657373616765",
        "0xe887f3b50232722e6eb4c1d3a03b34c9b345acd1"
      ]
    },
    "scope": "eip155:1"
  }
}

```

```
{
  "pending": false,
  "result": "0x9aef363b17bc18dfbdcb9ed3ce5f9f96788ce84b353d262099e90c4fa0b513a4e21ee47bafa04c0630750e901b62bd4839b45219c191ec6076d6549637cb1beb4c"
}

```
