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

# Account IDs (CAIP-10)

A plain address like `0xab16...` does not identify which chain it belongs to. The same address can exist on Ethereum, Polygon, and other EVM chains. In a multichain context, you need to know which account on which chain the user authorized.

Account IDs solve this by combining a [scope](/metamask-connect/multichain/concepts/scopes/) with an address. After a user connects, the [session](/metamask-connect/multichain/concepts/sessions/) returns account IDs, so you know which chain each address belongs to.

## Format and examples[​](#format-and-examples "Direct link to Format and examples")

An account ID uses `namespace:reference:address` format, as defined by [CAIP-10](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-10.md).

| Ecosystem | Example                                                                              |
| --------- | ------------------------------------------------------------------------------------ |
| EVM       | eip155:1:0xab16a96D359eC26a11e2C2b3d8f8B8942d5Bfcdb                                  |
| Solana    | solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp:7S3P4HxJpyyigGzodYwHtCxZyUQe9JiBMHyRWXArAaKv |

Account IDs appear in the [sessionScopes](/metamask-connect/multichain/concepts/sessions/) returned by [getSession](/metamask-connect/multichain/reference/methods/#getsession). To extract the address from a CAIP-10 account ID:

```
const accountId = 'eip155:1:0xab16a96D359eC26a11e2C2b3d8f8B8942d5Bfcdb'
const address = accountId.split(':')[2]

```

## Next steps[​](#next-steps "Direct link to Next steps")

- [Scopes](/metamask-connect/multichain/concepts/scopes/): Understand CAIP-2 chain identifiers used in account IDs.
- [Sessions](/metamask-connect/multichain/concepts/sessions/): Learn how accounts are grouped into authorized sessions.
