$OAK
Holding $OAK buys access and nothing else.
Read token detailsThe treasury and contract admin is the single-owner wallet 0x856bb126188bDB5e425D3ac9D59E9ffBD12e6ECf. One owner key can spend treasury funds, redirect future subscription payments, replace the price signer and retire subscriptions. There is no second-signature requirement. Key compromise exposes these powers; key loss can make treasury funds and administration inaccessible. It cannot spend user wallet balances. Safe support is an optional deployment profile, not the launch setup.
Holding $OAK buys access and nothing else. Oak never promises returns, never pays holders from protocol fees, and never distributes fee payouts or rewards to token holders.
Oak is not affiliated with Robinhood. Oak shows a region notice by default.
1. $OAK Token Facts
- Name: Oak
-
Ticker:
$OAK -
Chain: Robinhood Chain (
4663,0x1237) -
Decimals:
18(OAK_DECIMALS = 18) -
Launch venue & pair: Standard Pons V2 coin paired with native ETH (bonding curve, graduating at
4.2 ETHinto a locked Uniswap v4 pool). -
Supply rule: Net supply is
totalSupply(). Both the 5% holder sign-up burn (burnFrom) andOakBurner(burn) execute true token burns that permanently reducetotalSupply(). Tokens sent to dead addresses do not reducetotalSupply(), and liquidity locked by Pons at graduation remains part oftotalSupply().
Canonical $OAK Contract Address
Not yet published (pre-launch). The one official $OAK contract address will be published in this slot and announced on @OakAgentKit at launch. Trust no other address.
Known ticker clash: Other small, dormant tokens named OAK already exist on Robinhood Chain — for example 0x38fE199550E677Fa9caC196495460dfF97BCe28F. They are unrelated to Oak. Always verify the exact contract address posted here and on @OakAgentKit.
2. Subscription Plans and the Entry Curve
Oak charges zero per-call fees and 0% on your swaps and module actions. Access to action tools is paid on a 30-day cycle in USDG (0x5fc5360d0400a0fd4f2af552add042d716f1d168, 6 decimals).
Two ways to subscribe
-
Holder plan — 9 USDG per 30 days (
9_000_000base units):- When you join, the subscription contract computes the rounded-up
$OAKentry amountNworth the current entry price, burns 5% ofN(burn = ceil(N * 5 / 100)) from that holding in the same transaction, and stores the remaining post-burn balanceN - burnas yoursignupOakCount. That recordedsignupOakCountnever changes while you remain subscribed. -
Access check, not a coin lock:
$OAKis a standard Pons coin and is never locked inside a contract. You keep access while your wallet's$OAKbalance is at least your post-burnsignupOakCount(checked fresh on every action tool call). Any$OAKabovesignupOakCountis free to trade at any time; if your balance dips belowsignupOakCount, action tools pause until you buy back. -
One-time 5% sign-up burn and exact burn approval (
subscribe.ts): Joining the holder plan (including rejoining afteroak cancel) has a sign-up burn that burns 5% of the entry amountN(ceil(N * 5 / 100)) in the same transaction viaburnFrom(wallet, burnAmount)and recordssignupOakCount = N - burnAmount. You need onlyN$OAKin your wallet at sign-up: for example, at an entry amount of 20,000$OAK, you hold 20,000$OAK, 1,000$OAKburns at sign-up, and 19,000$OAKis tracked as yoursignupOakCount. Inpackages/addon/src/subscribe.ts, the add-on reads[count, burn]fromquoteHolder(note, sig), setsmaxCount = ceilPercent(count)((count * 101n + 99n) / 100n, at most 1% above the quotedcount) to boundsubscribeWithAuthorization(maxCount, note, sig, auth), and approves the exact quotedburn(approval(this.deployment.oak, contract, burn.toString(), this.deployment.chainId)), never unlimited. -
Holder renewals: Cost 9 USDG per 30 days, burn zero
$OAK, and take no price note (so oracle or note-issuer outages never block existing holders from renewing).
- When you join, the subscription contract computes the rounded-up
-
No-hold plan — 9 USDG plus one sixth of the entry price per 30 days:
- Requires zero
$OAKand burns nothing. - Re-priced at every 30-day renewal from the current entry curve. At the $20 floor entry price, the no-hold plan costs 12.333333 USDG (
12_333_333base units) per 30 days.
- Requires zero
Shared subscription rules
-
Billing window and prepay cap:
paidUntil = max(now, paidUntil) + 30 days. Prepaying is capped at 90 days ahead (renewal opens when<= 3 daysremain). -
Cancel (
oak cancel): Callable at any time (even when lapsed or after a contract is retired). Cancelling setsplan = none, clearssignupOakCount, ends access at once, and forfeits any remaining paid days. Rejoining later is a fresh sign-up at that day's price and count. Switching between holder and no-hold plans is done viaoak cancelfollowed byoak subscribe. -
One-signature USDG payment with two checks: Holder payments use EIP-3009
receiveWithAuthorizationon USDG (Global Dollar, version1, chain4663), requiring (1)from == msg.sender, (2)USDG.authorizationState(from, nonce) == falsebefore the call, and (3) the contract's USDG balance to increase by the exact price across the call (preventing replayed or cancelled authorizations from settling as a no-op). Because the no-hold price moves with the on-chain ETH/USD average and net supply, the no-hold plan uses exactapprove(maxPrice)+transferFromof the contract-computed price.
Entry price table by $OAK market cap
The entry price is a continuous piecewise-linear curve across five market-cap bands:
| $OAK market cap | Entry amount (hold this much $OAK before the sign-up burn) | No-hold plan, per 30 days |
|---|---|---|
| under $100k | $20 flat | $12.33 |
| $100k to $500k | rises in a straight line $20 to $75 | $12.33 to $21.50 |
| $500k to $1M | rises in a straight line $75 to $100 | $21.50 to $25.67 |
| $1M to $10M | rises in a straight line $100 to $300 | $25.67 to $59 |
| over $10M | $300 flat (top) | $59 |
- Market cap =
totalSupply()×$OAKUSD price. -
"USD"is the USDG quote of the on-chain ETH/USDG pool; Oak assumes USDG trades at a dollar.
3. Launch Phases and Price Source
Launch phases
-
Curve (
phase != 2on Pons factory):$OAKis still on its bonding curve. Only the no-hold plan is open at the flat floor of 12.333333 USDG, with no price note required, and the holder plan is closed (HolderClosed()). -
Warmup (first 30 minutes after graduation):
$OAKhas graduated into its Uniswap v4 pool (phase == 2), but the pool has less than 30 minutes (1,800seconds) of trade history. The note issuer refuses to sign (history_too_thin), and both plans wait (the curve floor is never used after graduation). -
Ready (graduated and
>= 30minutes old): The note issuer signs price notes, the holder plan is open, and no-hold sign-ups and renewals follow the oracle. InReady, if the oracle or price note fails, sign-ups and no-hold renewals fail closed and revert without consuming a nonce.
Two-leg price calculation and the 50% guard
-
OAK/ETH leg (signed note): Because Pons V2 graduated pools use a fixed Uniswap v4 hook that records no on-chain TWAP observations, the Oak server's note issuer computes the ETH-volume-weighted mean of per-trade
oakPerEthE18over[now - 1800s, now), floor-rounded, and signs a signed 30-minute$OAKprice note (PriceNote { wallet, oakPerEthE18, timestamp, nonce }). Each note has a 5-minute life (300seconds), works once, and is bound to one wallet and one consuming contract. The issuer refuses to sign if the pool is younger than1,800seconds, has fewer than10trades in the window, has under$5,000two-sided depth, or lies outside the guard band. -
ETH/USD leg (on-chain): ETH/USD is read on-chain by
OakOracle.ethUsdE18()from the 30-minute average (observe([1800, 0])) of the ETH/USDG pool (0x52e65B17fB6E5BA00Ed806f37Afcd2DaA50271Ca). -
50% guard:
OakOracleenforces a 50% guard, rejecting any note whoseoakPerEthE18is not within 50% of the live pool price (spot / 2 <= note <= spot * 3 / 2, read live fromPoolManager.extsloadslot 6). -
Signer boundary: The price signer is the one always-on key in Oak: it is sign-only, holds no ETH, and is separate from the treasury owner key. The Treasury owner can replace the price signer (
setPriceSigner), and setting the zero address pauses pricing. A dishonest or stolen signer alone is bounded to 0.5x to 1.5x of the spot-implied holder count.
4. The 25% / 75% Split and OakBurner
Every subscription payment splits in the same transaction on the full amount:
-
25% goes to the burn contract (
OakBurner:burn = amount / 4, e.g.,2.25 USDGout of9 USDG). -
75% goes to the single-owner treasury wallet (
treasury = amount - burn, e.g.,6.75 USDGout of9 USDG). -
OakSubscriptionretains zero balance; a permissionlesssweepToTreasury()forwards any USDG sent to it by mistake.
How OakBurner works
- Anyone can call permissionless
buyAndBurn(usdgIn, note, sig)with a valid burner price note (wallet = address(0),for: "burner") fetched fromPOST /v1/price-note. - Each chunk spends at most 0.5% of live pool liquidity along the fixed route
USDG -> ETH -> $OAKand requiresminOakOutat a price limit of at mostnote * 1.02(never the live spot price). - Purchased
$OAKis destroyed in the same transaction viaburn(uint256), reducingtotalSupply(). -
Armed 90-day sweep timer: The single-owner treasury wallet can sweep stuck USDG from
OakBurnerto the treasury only after a 90-day timer started by a public transaction (armSweep, which recordsarmedAtandarmedBalance). Any successful burn cancels the timer. CallingsweepStuck()after 90 days moves at most the balance recorded when the timer was armed (min(balance, armedBalance)), so later deposits require a fresh 90-day timer.
5. $OAK Trading Fees to the Single-Owner Treasury Wallet
- Every
$OAKtrade on Pons V2 pays a2%fee:0.3%to Pons and 1.7% creator fee (0.7%standard creator share +1%creator tax set at launch; venue buybacks are off). - All 1.7% goes to the single-owner treasury wallet, which is the Pons creator-fee recipient and claims positive ETH balances from the Pons fee escrow (
0xd3AFEB2a57f70eF218Aa82451c51B2fb0416Ac9e) by owner-signed transaction. -
Pons keeper dependency: On graduated pools, launch-token-side fees reach the fee escrow only after Pons's own conversion keeper converts them to ETH (until then,
sweepPoolFeesrevertsInternalSwapRequiresOperator(), so the treasury wallet skips the hook sweep and claims already-credited escrow balances). -
External Pons owner override: The external Pons owner (
0x263ed295dAFaE1d9AAdD6E56c4B6F9f38eE019Dd) can propose replacing the creator-fee recipient subject to a 3-day public timelock that Oak cannot cancel.
6. Contract Lineage and Source-Bound Grandfathering
Oak contracts are non-upgradeable. If OakSubscription ever needs a fix:
- The treasury wallet flips the one-way
retire()switch on the old contract (stopping new sign-ups and renewals while preserving reads andcancel()) and deploys a successor whose immutableprevious()points to the retired contract. -
One record per wallet across the lineage: A wallet's authoritative record is on the newest contract in the lineage where
hasRecord(wallet)istrue. -
Grandfather Merkle tree (
OakGrandfather/v1): The treasury wallet posts a one-time grandfather root (default deadline:120 days) built from finalized history, binding each eligible holder's(wallet, signupOakCount, sourceContract)using the wallet's recorded post-burnsignupOakCount(for example,19,000after a20,000entry and1,000burn). When renewal is due,oak renewcallssubscribeGrandfatheredWithAuthorizationon the successor, carrying over live remaining paid time (paidUntil = max(now, source.paidUntil) + 30 days, within the 90-day cap) at that recordedsignupOakCountwith zero$OAKburn and no price note.