Docs/Protocol/The Reserve
How the Reserve buys
The limits the Reserve checks on every purchase, and the keeper that sends them.
- Largest purchase
- 1 ETH
- Same asset
- 15 minutes apart
- Window
- Mon to Fri, 13:30 to 21:00 UTC
- Price bound
- 98.5% of Chainlink
#How purchases are limited
The keeper sends each purchase, and the Reserve checks it. A purchase that breaks any rule below reverts, so the limits hold whoever runs the keeper.
| Rule | Limit |
|---|---|
| Size | At most 1 ETH per purchase |
| Spacing | At least 15 minutes between two trades of the same asset |
| Window | Monday to Friday, 13:30 to 21:00 UTC |
| Prices | The asset’s and the ETH/USD Chainlink answers, each updated within the last 24 hours |
| Paused price | No trade while the issuer has paused the asset’s price |
| Price bound | At least 98.5% of the tokens the Chainlink prices imply |
| Venue | Only a swap target the owner allowed, 24 hours after the call |
| Caller | Only the keeper address |
minimum = ETH spent × ETH/USD price ÷ asset price × 98.5%
- ETH spent
- The WETH the swap took, at most 1 ETH
- Prices
- Chainlink answers, each at most 24 hours old
The Reserve wraps the ETH, approves exactly that WETH to the swap target, and counts the tokens that arrive. The keeper may ask for more than the bound; the Reserve requires the higher of the two.
The window spans the U.S. market session in summer and in winter time. It holds no holiday calendar; the keeper skips market holidays. The Reserve never buys on a weekend, so it never pays the weekend premium.
A sale that brings a stage back under the 50% cap passes the same checks, and sells no more than the stage’s excess (Stages and weights).
#The keeper
The keeper is a server wallet run by the server’s worker. It holds only ETH for gas: the Reserve’s ETH never passes through it.
| Rule | Value |
|---|---|
| Session | NYSE hours, 9:30 to 16:00 New York time, Monday to Friday |
| In UTC | 13:30 to 20:00 in summer time, 14:30 to 21:00 in winter time |
| Closed days | NYSE holidays, from the exchange’s rules; early closes at 13:00 New York time |
| Pace | At most one trade per 15-minute interval |
| Slice | The Reserve’s ETH divided over the session’s remaining 15-minute intervals, at most 1 ETH |
| Order | A sale that restores the stage cap first; otherwise a purchase of the stock token furthest below its target |
| Quote | At least 99% of the Chainlink-implied amount; a thin pool halves the size, up to six times |
| Minimum out | The quote less 0.5% |
| Route | Uniswap v3 SwapRouter02, direct or through USDG, whichever quotes more |
The keeper wallet is 0x977340·334538. Each trade is simulated before it is signed.
Swap targets
A swap target is a contract the Reserve may trade through. The owner allows or removes one, and the change takes effect 24 hours after the call, in public. The Reserve’s swap target is Uniswap v3 SwapRouter02, 0xCaf681·9E5cb2.
A swap target is never $KYZN, WETH, the $KYZN/WETH pair, the Reserve, Staking, or a listed or queued asset. Since the Reserve counts what arrives, a bad target can take no more than the price bound allows on one purchase.
Owner powers
| Power | Rule |
|---|---|
| Set the keeper | Names the one address that may trade |
| Add an asset | Add only, 24 hours in public before it lists |
| Allow or remove a swap target | Effective 24 hours after the call |
| Anything else | None: no withdrawal, no pause, no change to the limits or to redemption |