Receive and claim ETH yield
Overview
Blast is an L2 that modifies the native ETH token to be rebasing. Blast users and smart contracts can earn ~4% from beacon chain staking yield.
EOAs automatically receive ETH yield via rebasing.
Smart contract accounts have three Yield Modes for their rebasing mode:
- Void (DEFAULT): ETH balance never changes; no yield is earned
- Automatic: native ETH balance rebases (increasing only)
- Claimable: ETH balance never changes; yield accumulates separately
Smart contracts must interact with the Blast yield contract located at 0x4300000000000000000000000000000000000002
to change their Yield Mode.
Yield Modes
Void Yield (DEFAULT)
Smart contract accounts default to Disabled yield in order to maintain compatibility with existing Ethereum Mainnet dapps and EVM-compatible L2 dapps. Any normal dapp can be deployed to Blast and Just Work™ without any changes needed.
Automatic Yield
If 1 ETH is deposited to a dapp with Automatic yield enabled, the dapp’s balance will grow to 1.04 ETH in a year. This is useful for dapps that want to pass yield on to their users such that there’s no opportunity cost for the user to deposit ETH to the dapp.
Claimable Yield
If 1 ETH is deposited to a dapp with Claimable yield enabled, the dapp’s balance will remain at 1 ETH even after a year. The dapp will accrue a yield balance of 0.04 ETH which can be claimed asynchronously.
Governor
The governor is the address that’s allowed to claim the contract’s yield and gas, which might be the contract’s own address, its owner, or anything else.
By default, the governor is the contract’s own address.
After contract creation, only the governor can reconfigure the contract’s yield and gas mode.
FAQ
Can an EOA forward its yield to another address?
An Automatic yield mode EOA or contract cannot forward its yield to another account. On yield distribution events, the balance of an automatically rebasing account will automatically increase.
A Claimable account’s yield is not counted as part of the EVM balance. The yield must be claimed via the Blast pre-deploy’s claimYield()
or claimAllYield()
functions. Both these interfaces allow the caller to specify a recipient for the yield. In this way, yield accumulating to a Claimable account can be claimed to another address directly. Note that this does not happen automatically — a contract call must be made to claim. Additionally, an EOA can set its governor to another address, which would allow that address to make these claimYield
calls without any interactions from the EOA.
How often do balances update due to yield?
On mainnet, ETH balances will update approximately daily. On testnet, ETH balances will update hourly at a rate of ~0.01% per day.
IBlast Interface
In the interface below, when you see a function like configureX
with corresponding configureXOnBehalf
version, the difference is that configureX
configures the caller and configureXOnBehalf
configures the contract corresponding to the contractAddress
parameter.