Documentation

Pons is an Olympus-equivalent reserve protocol. PONZ is backed by assets the DAO owns, staking distributes the growth in those assets, bonds and emissions expand supply only when the market pays a premium over backing, and Pons Loans let you borrow against the reserves without a liquidation risk.

Overview

Every PONZ in circulation is supported by reserves held in the Pons treasury. The protocol never promises a peg. What it defends is backing: the reserve value attributable to each token. Policy expands supply only when the market pays more than backing, and buys PONZ back when it pays less.

The loop in one sentence. Bonds and emissions sell PONZ for reserves at a premium → reserves grow faster than supply → backing per PONZ rises → stakers receive the difference as a rebase.

The three tokens

TokenDecimalsBehaviourUsed for
PONZ9Fixed balance The reserve currency. Trades, bonds, treasury accounting.
sPONZ9Rebasing Staked PONZ. Balance grows every epoch; price tracks PONZ 1:1.
gPONZ18Fixed balance, rising index Wrapped sPONZ. Governance voting power, loan collateral, bond vesting unit.

gPONZ is sPONZ with the rebase folded into an index instead of the balance: gPONZ = sPONZ × 1e9 / index. That makes it safe to use inside contracts that would otherwise be confused by a balance that changes underneath them.

Staking & rebases

Staking locks PONZ in the staking contract and mints sPONZ 1:1. Once per epoch the staking contract calls rebase(), which:

  1. asks the Distributor to mint the epoch's reward into the staking contract;
  2. computes distribute = contractBalance − circulatingStaked;
  3. calls sPONZ.rebase(distribute, epochNumber), which raises total supply and re-prices every gon;
  4. advances epoch.end and epoch.number.

New stakes pass through a warmup so that a deposit landing one second before a rebase cannot capture a full epoch of rewards.

The reward rate, and where the APY comes from

The Distributor mints a fixed percentage of supply every epoch. Because an epoch is 8 hours, that percentage compounds 1,095 times a year — which is the only reason the headline numbers look the way they do.

Supply bandRate (1e6)Per epochAPY
Bootstrap (2021 launch rate)57500.5750%53,184%
< 1M PONZ (default)30580.3058%2,732%
1M – 10M15870.1587%468%
10M – 100M11860.1186%266%
100M – 1B7930.0793%138%
1B – 10B3970.0397%54%
> 10B1980.0198%24%

This is Olympus's OIP-18 framework: the rate steps down as supply grows, so early stakers are paid most and the emission slows as the protocol matures.

Read this before you get excited about the APY. That yield is paid in newly minted PONZ, not in revenue. Your share of the supply only grows if you stake; in value terms you gain nothing unless the treasury grows faster than the supply. The money that funds it comes from bond buyers — people paying above backing for discounted PONZ. When bond demand stops, the premium collapses and the price falls toward backing. That is exactly what happened to OHM in early 2022, and it is why Olympus itself has since taken this rate to 0%. Pons ships the 2021 model on purpose, but the rate is a governance parameter: PONZ_REWARD_RATE=0 switches it off.

Treasury & backing

The treasury is the only contract allowed to mint PONZ, and it only does so against value received. deposit(amount, token, profit) takes in a reserve asset, values it in 9-decimal PONZ terms, and mints value − profit; the profit slice is what accrues to backing.

Excess reserves — the buffer available for policy and loans — is totalReserves − (baseSupply − totalDebt). Every privileged role (depositor, spender, manager, debtor, reward manager) is registered behind a queue with a block timelock.

Bond markets

A bond market sells PONZ at a discount in exchange for a reserve asset, vesting over a fixed term. Price is driven by a control variable that decays with time and is retuned toward a target debt level, so the discount widens when demand is weak and narrows when it is strong.

Payouts are recorded as notes denominated in gPONZ, so a bonder keeps earning the staking rebase while their bond vests.

Pons Loans

Pons Loans let a holder escrow gPONZ and borrow the reserve asset against the liquid backing underneath it.

Interest0.5% fixed, annualised — principal × rate × duration / 365d / 1e18
LiquidationsNone. Price cannot force a close.
Term121 days, rollable indefinitely
CollateralgPONZ, held in a per-borrower escrow contract
oLTCOrigination loan-to-collateral, dripping upward as backing grows

If a loan expires unpaid, the lender claims the escrowed gPONZ. That is the only way a position closes against the borrower's will — and it depends on time, never on price.

Automated monetary policy

Emissions Manager

Once a day the manager measures the premium of market price over backing. If the premium clears a floor, it mints and sells:

premium  = price / backing − 1
emission = supply × (premium − minimumPremium) / (1 + premium) × baseEmissionRate

Below the floor it emits nothing, so supply never expands into weakness.

Yield Repurchase Facility

Reserves earn yield. Each week the YRF opens a market that spends that yield buying PONZ back, which raises backing per token for everyone who did not sell.

Convertible Deposits

Depositors hand over reserves for a right to convert into PONZ at a strike before an expiry. If they do not convert, the reserves come back. The DAO gets a cheap option on permanent capital; the depositor gets upside without dilution risk.

Governance

gPONZ is an ERC20Votes token, so voting power is checkpointed and delegable. Proposals run through an OpenZeppelin Governor into a TimelockController.

Proposal threshold1,000 gPONZ
Voting delay43,200 blocks (~1 day)
Voting period216,000 blocks (~5 days)
Quorum4% of gPONZ supply
Timelock2 days before execution

The PONS launch

PONZ was distributed through PONS, the non-custodial launchpad native to Robinhood Chain. Under the V2 model every token starts on a bonding curve rather than an instant liquidity pool, and graduation migrates the curve reserves into a permanently locked Uniswap v4 position.

The protocol cannot mint a single PONZ until that has demonstrably happened. PonsLaunchGuard holds the vault role and will only hand it to the treasury when all three conditions hold simultaneously:

  1. IPonsLaunchpad.isGraduated(PONZ) is true;
  2. the graduated LP position is verified locked with no unlock path;
  3. a governor-signed arm() happened at least 48 hours earlier.

The guardian can abort() during that window, which resets the clock. The release is one-way and one-shot, and the treasury address is immutable — governance chooses when, never where.

The protocol's share of PONS trading fees flows into FeeRouterBuyback, which buys PONZ on the graduated pool and burns it.

Contracts

NetworkChain IDRPCExplorer
Robinhood Chain4663 rpc.mainnet.chain.robinhood.com robinhoodchain.blockscout.com
Robinhood Testnet46630 rpc.testnet.chain.robinhood.com testnet.robinhoodchain.blockscout.com

Gas is paid in ETH. Deployed addresses are written to contracts/deployments/<chainid>.json by the deploy script and mirrored in the app's ADDRESSES map.

Risks

This code is unaudited. It is a faithful re-implementation of a well-known protocol, not a fork of audited bytecode. Do not deploy it with real value until it has been through a full audit.
  • Price risk. PONZ is not a stablecoin. Backing sets a floor in theory, not a guarantee in practice.
  • Dilution. Emissions increase supply. If the premium assumption is wrong, stakers are paid in tokens rather than value.
  • Oracle risk. The Emissions Manager reads a price feed. A stale or manipulated feed mis-sizes emissions.
  • Governance risk. A sufficiently large gPONZ holder can pass a proposal. The timelock is the only delay between a decision and its execution.
  • Launch risk. A bonding-curve distribution is open to anyone, including a well-capitalised buyer taking a large share of the curve.