Skip to content

Funds

Your Coffer’s ETH sits in two places, your validator’s balance on the beacon chain and the contract’s own balance. Bonds are paid from the contract balance, and keeping it sufficient for every matured bond is your one duty. This page covers the three moves the app offers, the plain transfer that needs no control at all, and the rows on the terms card that show where the ETH is.

MoveWhere the ETH goesWhen it landsThe issue sizeThe versionIn a default
Send ETH to your Coffer’s addressthe contract balanceat oncegrows by the full amountunchangedworks, and cures it
Add Fundsyour validator’s beacon balanceonce the beacon chain processes the depositgrows by the amount at the buffer discountunchangedheld
Withdraw · Consensus, or Exitfrom the beacon balance into the contract balanceafter the queue and the sweep, roughly two daysunchangedunchangedheld
Withdraw · Executionfrom the contract balance to your walletat oncefalls by the amount while bonds are outstandingbumpedheld

Send ETH to your Coffer’s address from any wallet. It lands at once, and the contract raises its balance and the issue size by the full amount, because ETH in the contract is fully available to pay bonds. The transfer works while your Coffer is in default, and it is how a looming default is cured, since a matured bond is paid in full the moment the balance covers it. Anyone can send, and a top up from a third party counts the same. This is the fastest way to fund a maturity, a consensus withdrawal takes days.

In the Owner Controls card, under Funds, press Add Funds. The panel takes an amount in ETH with a Max button, in steps of 0.1 ETH. The minimum is 1 ETH, “Amount is below the minimum (1 ETH).”, and the amount has to be a whole number of gwei, “Amount must not have sub-gwei precision (max 9 decimal places).”, because the deposit contract counts in gwei. Max is your wallet balance less a gas reserve, floored to a gwei. The line under the field reads “Beacon balance … ETH · staked on the beacon chain. Tops up from your wallet … ETH, caps at the 2048 ETH MaxEB. Max keeps … ETH for gas.” with your figures filled in, and 2048 ETH is the most the beacon chain counts for one validator.

Press Add funds. The deposit goes to the beacon deposit contract in your validator’s name, the app builds the deposit data itself, and the contract raises the issue size by the amount at the buffer discount, the same discount your starting balance got. While the beacon chain processes it, at least two epochs and longer when the churn cap bites, the terms card shows a Pending Deposit row and already counts the amount in the backing. Only a top-up made through the app shows there. Your first deposit, and any deposit you send straight to the deposit contract, appears in Validator Balance once the beacon chain has processed it, with no pending row in between.

The button reads Confirm in wallet while your wallet asks, Processing… while the transaction is in flight and Syncing… until the deposit shows in the beacon queue. Then the toast “Funds added to consensus” appears and the panel closes. If forty seconds pass first, the panel says “Your deposit is confirmed on chain. The beacon chain is still catching up, so the balance can take another minute to appear.” and your deposit is on its way all the same. Add Funds changes no term and does not bump the version, and it is held while your Coffer is in default.

Press Withdraw · Consensus in the same section. The panel opens as Withdraw from Consensus with a warning, “Triggers a real consensus-layer withdrawal. It enters the withdrawal queue and can take time to finalize. Funds land in the Coffer contract, then you withdraw from there.” The amount is in ETH, a whole number of gwei again, and the line under it says what you can take, “Withdrawable now … ETH without exiting · keeps the 32 ETH minimum stake.”, with ”… ETH is already in the withdrawal queue and is excluded.” added while an earlier request is still queued. A request that would take the balance below 32 ETH is cut down by the beacon chain itself. A partial withdrawal needs 0x02 credentials, see Point your validator at the Coffer.

The request goes through the network’s withdrawal request contract, which charges a small request fee. The app reads the fee at the click and sends six times it, because the fee can move before your transaction is included. The contract forwards the exact fee, and the surplus stays in your Coffer’s balance, where Withdraw · Execution reaches it, since the network refunds nothing. The request then waits in the beacon queue at least about 27 hours, and the ETH arrives in the contract with the beacon sweep, roughly two days after the request. Read a queued request as scheduled inflow rather than money in hand, slashing or a balance collapse before the payout voids it.

The button reads Confirm in wallet, then Processing…, then Syncing… until the request shows in the queue, and the toast “Withdrawal request queued” confirms it. If the queue does not show it within forty seconds, the panel says “Request sent. It has not appeared in the beacon withdrawal queue yet.” and stops there, because the beacon chain drops a request it rejects without a word, a wrong credential type for example, and nothing on this side can tell a slow queue from a dropped request. The request changes no term and does not bump the version, and the control is held in a default.

The same panel carries an Exit switch. Switched on, the amount field goes quiet and the panel reads “Exits the validator. This cannot be undone. Its full balance of … ETH leaves the beacon chain and lands in the Coffer contract once the exit completes.” The button reads Confirm in wallet, then Processing…, then Exit, the toast “Validator exit requested” appears at the receipt, and there is no syncing step, since an exit does not run through the queue the app watches. The exit works from 0x01 credentials as well as 0x02, and the whole stake lands in the contract, the 32 ETH floor included. While a partial withdrawal of yours is still queued the switch is blocked, ”… ETH is still in the beacon withdrawal queue. The beacon chain ignores an exit request while a partial withdrawal is pending. Exit becomes possible once it is paid out, around …” with the date filled in.

With no bond outstanding the stake is then yours to take out through Withdraw · Execution. With bonds outstanding it stays in the contract behind them, up to the issue size. Your Coffer’s pill reads Exiting from the moment the beacon chain has the request, and in a default the same exit is anyone’s to request, see Default.

Press Withdraw · Execution. The panel opens as Withdraw from Execution with the line “Available … ETH · withdrawable now from the Coffer contract’s liquid balance. While bonds are outstanding, withdrawals can’t drop coverage below the issue size.” under the amount. While bonds are outstanding you can take at most the issue size and never more than the contract holds. The withdrawal lowers the issue size by the same amount, so what you take out is capacity you no longer promise. With no bond outstanding the whole balance is yours. Every withdrawal here bumps the version, see Terms and what can change, and the ETH reaches your wallet in the same transaction.

The button reads Confirm in wallet, then Processing…, then Withdraw, and the toast “Withdrawal from execution successful” appears at the receipt, there is nothing to sync since the balance is read from the chain. If the app could not read that balance, the panel says “Couldn’t read the Coffer’s on-chain balance.” with a Retry link. The control is held in a default, because from then on the balance backs the holders’ claims.

The Terms card on your Coffer has a Coverage section with the rows this page moves. Validator Balance is your validator’s balance on the beacon chain. It reads a dash while the validator’s withdrawal credentials do not point to the Coffer, which is the case in the statuses Status Unknown, Key/Address Mismatch and Missing Credentials. It reads a dash too once an exit has swept the balance to the contract. Pending Deposit appears only while a top-up made through the app waits in the beacon queue. It never appears in those three statuses. Issue Size is what you can still issue. Issue Size Buffer is your buffer as a percentage. The bar under them reads Issue Size against Backing, where the backing is the contract balance plus the beacon balance plus any pending deposit, and its colour is the coverage band, the same mark the lists show. The beacon balance and the pending deposit count only while the credentials point to the Coffer. Contract Balance is the contract’s own balance, the money that pays bonds, shown as a dash until it has been read.