The addresses are a blake2b-256 hash of the relevant verifying/public keysconcatenated with some metadata that can be stored on theCardano blockchain.
Shelley introduced four different types of addresses:
- base addresses
- pointer addresses
- enterprise addresses
- reward account addresses.
Besides those new addresses, Shelley continued to support Byron-era bootstrapaddresses and script addresses, but only the new base and pointer addressescarried stake rights. Therefore, addresses consist of some serialized dataspecified in the ledger specification stored in the blockchain’s blocks, eg, anUnspent Transaction Output (UTXO) address.
The serialized data (address) contains two parts:
- metadata: used for interpreting
- payload: the raw or encoded data.
Base addresses
A base address directly specifies the staking key that should control the stakefor that address. The staking rights associated with funds held in this addressmay be exercised by the owner of the staking key. Base addresses can be used intransactions without registering the staking key in advance.
The stake rights can only be exercised by registering the stake key anddelegating to a stake pool. Once the stake key isregistered, the stake rights can be exercised for base addresses used intransactions before or after the key registration.
Pointer addresses
A pointer address indirectly specifies the staking key that should control thestake for the address. It references a stake key by a stake key pointer, whichis a location on the blockchain of the stake key registration certificate forthat key. Pointer addresses can be used in transactions, even if their target isnot an active stake key registration. This covers the scenario where the key wasunregistered after (or indeed, before) the transaction, and also covers pointersto targets that are plainly invalid. The reason for allowing such invalidtargets is so that nodes only need to track the currently active stake keys.
The pointer can be considerably shorter than the hash used in base addresses.
There is a subtlety with pointer addresses. It might happen that a stake keyregistration certificate referenced by a pointer address might be lost due to arollback. To prevent loss of funds in this scenario, the system considerspointer addresses with an invalid pointer to be valid for the purpose of usingfunds stored therein as inputs for transactions (but ignores them for thepurpose of proof of stake participation). Optionally, a wallet might refuse tocreate transactions to pointer addresses before the referenced certificate hasbecome immutable, to prevent funds from being excluded from the proof of stake,in the case of rollbacks.
Enterprise addresses
Enterprise addresses carry no stake rights, so using these addresses means thatyou are opting out of participation in the proof-of-stake protocol.
Exchanges or other organizations that control large amounts of ada – but hold iton behalf of other users – may wish to follow a policy of not exercising stakerights. By using enterprise addresses, exchanges can demonstrate that theyfollow this policy. Since enterprise addresses are not associated with anystaking key, they are automatically excluded from the mechanisms that influencethe slot leadership schedule. Note that using addresses with no stake rightseffectively decreases the total amount of stake, which plays into the hands of apotential adversary.
Also note that enterprise addresses may still be used to receive, hold, and send
tokens with a policyID (non-ada assets).
Reward account addresses
A reward address is a cryptographic hash of the public staking key of theaddress. Reward account addresses are used to distribute rewards forparticipating in the proof-of-stake protocol (either directly or viadelegation).
They have the following properties:
- account-style accounting is used, not UTXO-style
- funds cannot be received via transactions; instead, their balance is onlyincreased when rewards are distributed
- a one-to-one correspondence exists between registered staking keys and rewardaccount addresses.
This key is used whenever funds are withdrawn from the address. Furthermore,stake associated with funds in the address contributes to the stake of this key.Just as in the case of enterprise addresses, the staking object for a rewardaddress does not need to contain information.