RESERVE is an off-chain treasury automation agent — pure Node.js, not a smart contract — ported from the Atlas Treasury OS engine (keystoneOS lineage) to Robinhood Chain. On a policy-clamped cadence it sweeps a percentage of collector ETH into USDC, splits a disclosed 1% protocol fee, settles the rest to the treasury, mints or burns the rUSD stablecoin to close reserve−supply drift (the keystone leg), and writes an append-only receipt. The site you're reading is its public ledger.
Per tick: read balances via eth_getBalance → propose (AI, optional) → enforce (clamp) → swap ETH→USDC → split fee → mint/burn rUSD to close drift → receipt. Failures retry with backoff; a failed tick writes nothing.
| knob | value | meaning |
|---|---|---|
| minPct / maxPct | 1% — 2.9% | sweep band per tick; AI proposals are clamped into it |
| spikePct | 20% | applied when a collector inflow spike is detected |
| chunk limits | 0.002 — 0.04 ETH | hard floor/ceiling on any single sweep |
| collector buffer | 0.004 ETH | never swept — gas safety |
| protocol fee | 100 bps | disclosed; separated on every sweep |
| cadence | 14–24s (sim) | halved after spikes so the agent leans in when flow arrives |
The proposer is an LLM given the current balances and history. Its output is a single number: a proposed sweep percentage. That number is passed through a deterministic clamp before anything executes. The model holds no keys, signs nothing, and cannot call transfer functions — structurally, not by promise. When a proposal falls outside the mandate, the receipt says so publicly:
entry: proposer suggested 3.90% — outside mandate, clamped to 2.60%. ledger: sweep 2.60% (0.00871 eth) → 26.4310 usdc to treasury. ...
rUSD is the pegged unit — the keystone mechanic. Its supply is elastic and follows the reserve exactly:
drift = reserve_usdc − rusd_supply drift > 0 → mint drift rUSD // reserve grew: back new supply 1:1 drift < 0 → burn |drift| rUSD // reserve dipped: contract supply peg = reserve / supply // held at 1.0000 by arithmetic
Every rUSD in existence corresponds to one USDC already sitting in the treasury. The peg is not defended by incentives, seigniorage games or reflexive collateral — it is closed by a subtraction and a mint/burn, every tick, on the tape.
Every action is a JSON line item: timestamp, action, percentages (proposed and applied), ETH amount, live Pyth price, gross, fee, settlement, mint/burn amount, resulting reserve, supply and peg. The tape keeps the last 200; the ledger is append-only. Verify any row with four numbers and a division.
POST /webhook and the tape switches to agent-source rows, marked in green.