The vault account
Held by
DeviceVault under the agent id. This is the device’s budget. Every MON that leaves it passes the caps, the allowlist, and the pause.The device address
A normal balance on the device key’s address. It only pays transaction fees. The device refills it from the vault, never above 5 MON.
Deposit
Anyone can fund any claimed agent. Depositing does not give the depositor any rights over the vault.- Deposit page
- cast
Send Connect any wallet on Monad testnet, enter an amount, and confirm. The page checks the agent is claimed, then calls
/deposit in Telegram, or open the link shown in the claimed banner:deposit(agentId) with the amount as value.How the device pays gas
The claim page gives the device its first gas: after the claim and the attestor approval, if the device address holds less than 1 MON, the page asks the owner to send it 1 MON. From then on, the device refills itself. Before every payment and every attestation it runs this check:1
Read the device balance
Above 1 MON, nothing happens.
2
Size a top-up
At or below 1 MON, it computes the largest amount that fits all of these at once: room up to 5 MON, the per-transaction cap, what is left of the daily cap, and the vault balance.
3
Take it from the vault
If that amount lifts the device above 1 MON, it calls
topUpGas(agentId, amount) and then sends the real transaction.4
Or stop and tell the owner
If the vault itself cannot cover it, the device posts a funding link to the paired Telegram chat and the transaction does not go out.
GasToppedUp events.
“the spending cap is too low to top up device gas”
“the spending cap is too low to top up device gas”
The vault has enough MON, but the caps are too small for one top-up to lift the device above 1 MON. This happens when the device balance has fallen well below 1 MON, for example to 0.5 MON with a 0.05 MON per-transaction cap. Send the device address a little MON directly, or raise the caps with
/limits.“The vault does not have enough MON for device gas”
“The vault does not have enough MON for device gas”
The vault balance cannot cover the minimum top-up. Deposit more with the link in the message.
“the device could not take gas from the vault”
“the device could not take gas from the vault”
The top-up transaction reverted. The most common cause is a paused vault. Resume with
/resume, or send MON to the device address directly.Paying recipients
The device pays with thevault_pay tool, giving a recipient and an amount in MON. Before it can pay anyone:
- The recipient must be allowlisted. Send
/approve <address>and sign the digest. See Telegram owner commands. - The vault must not be paused.
- The amount must fit the per-transaction cap and what is left of the daily cap.
vault_pay always raises an approval card on chat channels before it runs.
Withdraw
Only the current owner can withdraw, and funds always go to the owner. A withdrawal ignores the caps and works while the vault is paused, so an owner can always recover funds from a device they no longer trust.- Withdraw page
- cast
Send Connect the owner wallet, enter an amount, and confirm. The page refuses to continue if the connected wallet is not
/withdraw in Telegram and open the link:ownerOfAgent(agentId).