|
| 1 | +--- |
| 2 | +id: addresses |
| 3 | +title: Addresses |
| 4 | +sidebar_label: Addresses |
| 5 | +description: Understanding Cardano address types, structure, and how payment and stake keys work together. |
| 6 | +image: /img/og/og-getstarted-technical-concepts.png |
| 7 | +--- |
| 8 | + |
| 9 | +Cardano addresses are used as destinations to send ada on the blockchain. Understanding their structure and types is fundamental to working with the Cardano ecosystem. |
| 10 | + |
| 11 | +<iframe width="100%" height="325" src="https://www.youtube-nocookie.com/embed/NjPf_b9UQNs" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture fullscreen"></iframe> |
| 12 | + |
| 13 | +## Address Construction and Structure |
| 14 | + |
| 15 | +Cardano addresses are blake2b-224 hash digests of relevant verifying/public keys concatenated with metadata. They are binary sequences consisting of a one-byte header and variable-length payload: |
| 16 | + |
| 17 | +- **Header**: Contains address type information (bits 7-4) and network tags (bits 3-0) distinguishing mainnet from testnet |
| 18 | +- **Payload**: The raw or encoded data containing the actual address information |
| 19 | + |
| 20 | +### Encoding Formats |
| 21 | + |
| 22 | +**Shelley addresses** use Bech32 encoding with human-readable prefixes: |
| 23 | + |
| 24 | +- `addr` for mainnet addresses |
| 25 | +- `addr_test` for testnet addresses |
| 26 | +- `stake` for mainnet reward addresses |
| 27 | +- `stake_test` for testnet reward addresses |
| 28 | + |
| 29 | +**Byron addresses** use Base58 encoding for backward compatibility, making them easily distinguishable from newer addresses. |
| 30 | + |
| 31 | +## Key Types and Their Purposes |
| 32 | + |
| 33 | +Cardano uses two main types of Ed25519 keys, each serving distinct purposes: |
| 34 | + |
| 35 | +**Payment Keys**: Used to sign transactions involving fund transfers, minting tokens, and interacting with smart contracts. The payment verification (public) key is used to derive addresses that can receive and send ada and native tokens. |
| 36 | + |
| 37 | +**Stake Keys**: Used to sign staking-related transactions including stake address registration, delegation to stake pools, and reward withdrawals. Stake keys enable participation in Cardano's proof-of-stake consensus mechanism. |
| 38 | + |
| 39 | +## Payment and Delegation Components |
| 40 | + |
| 41 | +Shelley addresses contain two distinct parts: |
| 42 | + |
| 43 | +**Payment Part**: Controls fund ownership. Spending requires a witness (signature or script validation) proving control over this component. This is typically derived from a payment verification key. |
| 44 | + |
| 45 | +**Delegation Part**: Controls stake rights associated with funds. This can be: |
| 46 | + |
| 47 | +- A stake key hash (direct delegation) |
| 48 | +- A pointer to an on-chain stake registration certificate (compact representation) |
| 49 | +- Empty (enterprise addresses with no stake rights) |
| 50 | + |
| 51 | +**Franken addresses** allow payment and delegation parts to be controlled by different entities, enabling separation of fund control and staking rights. |
| 52 | + |
| 53 | +Franken Addresses are a way to register additional pledge to a pool without registering a second owner on the blockchain. |
| 54 | +<iframe width="100%" height="325" src="https://www.youtube-nocookie.com/embed/KULzovfWn-M" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture fullscreen"></iframe> |
| 55 | + |
| 56 | +## Address Types |
| 57 | + |
| 58 | +Cardano supports different address types across categories: |
| 59 | + |
| 60 | +### Shelley Address Types |
| 61 | + |
| 62 | +**Base Addresses** directly specify the staking key controlling stake rights. The staking rights can be exercised by registering the stake key and delegating to a stake pool. Base addresses can be used in transactions without prior stake key registration. |
| 63 | + |
| 64 | +**Enterprise Addresses** carry no stake rights, allowing users to opt out of proof-of-stake participation. Exchanges and organizations holding ada on behalf of others often use these to demonstrate they don't exercise stake rights. These addresses can still receive, hold, and send native tokens. |
| 65 | + |
| 66 | +**Reward Account Addresses** distribute rewards for proof-of-stake participation. They use account-style (not UTXO-style) accounting, cannot receive funds via transactions, and have a one-to-one correspondence with registered staking keys. |
| 67 | + |
| 68 | +**Pointer Addresses** indirectly specify staking keys by referencing a location on the blockchain where a stake key registration certificate exists. Pointers are considerably shorter than stake key hashes. If the referenced certificate is lost due to rollback, pointer addresses remain valid for payments but lose stake participation rights. |
| 69 | + |
| 70 | +Learn and dive into CPS-0002 which focuses on Pointer Addresses. |
| 71 | + |
| 72 | +<iframe width="100%" height="325" src="https://www.youtube-nocookie.com/embed/XKgmP1r_GSA" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture fullscreen"></iframe> |
| 73 | + |
| 74 | +### Legacy Byron Addresses |
| 75 | + |
| 76 | +Byron addresses are legacy addresses from Cardano's Byron era, using CBOR encoding and Base58 representation. They have no stake rights and are maintained for backward compatibility. |
| 77 | + |
| 78 | +:::caution |
| 79 | +**Important Limitation**: Byron addresses are **not allowed in transactions that contain Plutus scripts**. This means smart contracts will never encounter Byron addresses during validation. If you're working with dApps, ensure all addresses are Shelley-era addresses to avoid transaction failures. |
| 80 | +::: |
| 81 | + |
| 82 | +<details> |
| 83 | +<summary>Technical Reference: Address Binary Format</summary> |
| 84 | + |
| 85 | +For complete technical specifications including binary format details and address derivation paths, see [CIP-19: Cardano Addresses](https://cips.cardano.org/cip/CIP-19). |
| 86 | + |
| 87 | +The binary format follows this structure: |
| 88 | +- 1 byte header (address type + network tag) |
| 89 | +- Variable payload depending on address type |
| 90 | +- Bech32 or Base58 encoding applied to the final binary |
| 91 | + |
| 92 | +</details> |
| 93 | + |
| 94 | +--- |
| 95 | + |
| 96 | +## Next Steps |
| 97 | + |
| 98 | +- Learn about [Wallet & Key Management](/docs/get-started/technical-concepts/wallet-key-management) |
| 99 | +- Understand [Transaction Fees](/docs/get-started/technical-concepts/fees) |
| 100 | +- Build with addresses: [Building dApps](/docs/integrate-cardano/) |
0 commit comments