Save gas by performing deposits in batches
Our contract facilitates the pooling of multiple ETH deposits for submission to the Ethereum beacon chain in a single transaction. This method is not only convenient but also maximises gas efficiency, reducing overall costs.
Avoid EVM gas limits
Due to EVM constraints relating to large amounts of loop iterations, it is recommended to deposit in batches of up to 500 at a time.
If you encounter issues with failing transactions, try a smaller batch.
Pectra Era
Mainnet: Coming soon
Hoodi Testnet: 0x4c9506eE2fCd962f03022D9d8ebf6f7828abEfaf
View ABI
[
{
"inputs": [],
"name": "DepositValueGreaterThan2048ETH",
"type": "error"
},
{
"inputs": [],
"name": "DepositValueLessThan1ETH",
"type": "error"
},
{
"inputs": [],
"name": "DepositValueMustBeMultipleOfGwei",
"type": "error"
},
{
"inputs": [],
"name": "InvalidPubKeyLength",
"type": "error"
},
{
"inputs": [],
"name": "InvalidSignatureLength",
"type": "error"
},
{
"inputs": [],
"name": "InvalidWithdrawalCredLength",
"type": "error"
},
{
"inputs": [],
"name": "MsgValueNotEqualToTotalDepositAmount",
"type": "error"
},
{
"inputs": [],
"name": "NoDepositsProvided",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes",
"name": "pubKey",
"type": "bytes"
},
{
"indexed": true,
"internalType": "bytes",
"name": "withdrawalCredentials",
"type": "bytes"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "ValidatorDeposit",
"type": "event"
},
{
"inputs": [
{
"components": [
{
"internalType": "bytes",
"name": "pubKey",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "withdrawalCredentials",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"internalType": "struct IBatchDeposit.Deposit[]",
"name": "_deposits",
"type": "tuple[]"
}
],
"name": "batchDeposit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "depositContract",
"outputs": [
{
"internalType": "contract IDepositContract",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
]
Shapella Era
Mainnet: 0x12EB6257b03Bc63F9b0121FEc484150A6aDb0De7
Hoodi Testnet: 0xCC408Ad84DAda990fAFF4Fe7da8DAB246dFE533E
View ABI
[{"inputs":[{"internalType":"address","name":"deposit_contract_address","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogDepositLeftover","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"pubkey","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"withdrawal","type":"bytes"}],"name":"LogDepositSent","type":"event"},{"inputs":[{"internalType":"bytes[]","name":"pubkeys","type":"bytes[]"},{"internalType":"bytes[]","name":"withdrawal_credentials","type":"bytes[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"},{"internalType":"bytes32[]","name":"deposit_data_roots","type":"bytes32[]"}],"name":"batchDeposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"depositContract_","outputs":[{"internalType":"contract IDeposit","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kDepositAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]