Documentation

How VANTU works

VANTU launches coins on Pons V2 and adds nothing to the trading side: no custom curve, no token standard, no bespoke AMM. What VANTU adds is where the creator's fees go. Each coin names a vault that converts them into a weighted basket of Robinhood Chain Stock Tokens, created in the same transaction as the launch.

Overview

A launch is one transaction against the Pons factory at 0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e. It deploys an ERC-20 and a bonding curve, mints the whole supply to the curve, and trading starts at once. The curve is quoted in one asset: native ETH, or one ERC-20 the factory owner has approved. A coin's address is its identity; coin pages live at /coin/0x….

Every trade pays a fee, and most of it is booked to an address the creator names at launch, the creatorFeeRecipient. Pons accepts any address there, including a contract. That is the whole integration: no fork, no permission, nothing about Pons changes.

What is live, and what is not

Everything on this site is read from Robinhood Chain; nothing is simulated. What is not yet available is listed as such.

Launching a coin on Pons V2
Live
A real transaction against the Pons factory.
Curve trading, quotes and slippage
Live
Quoted with the contract's exact arithmetic.
Live price, reserves, market cap, progress
Live
Read live from each coin's curve.
Trades, holders, chain-wide activity
Live
From on-chain trade events and Blockscout.
Stock Token prices
Live
Robinhood's asset API, plus Chainlink where a feed exists (35 of 194 tokens).
Burn-to-redeem vaults
Live
MAG7 launched with one and holds a seven-leg basket bought with its own creator fees. Immutable, with no owner, pause or upgrade.
Claim vaults: merkle claims that pay without burning
Live
At 0xE36A29A3B71a3fFA531d21e3F8B0dc818544bF75. Earlier claim vaults keep their claims for good.
Claim vaults with USDG routes
Live
At 0xf89E4cb135758DED3E56Ab5d0C57aB5EF863fc04. Every new basket launch routes through it, so a basket may hold any Stock Token with a WETH or a USDG pool.
Coin price history
Not yet
Since VANTU started recording the coin's trades.
Stock 24h / 7d change
Not yet
Only where a Chainlink feed exists, labelled with the real gap between rounds. The other 159 tokens have no change figure.
Comment threads on a coin
Not yet
No on-chain source and no database, so there is no comments tab.

Launching

Pons offers one launch configuration today. These are its parameters, read live from the factory.

Launch fee
0.0005 ETH
Paid to Pons, on top of gas.
Total supply
1,000,000,000
Minted to the curve at launch. No creator allocation beyond a dev buy at the public price.
Base trade fee
1.00%
Charged on the quote leg of every buy and every sell.
Creator tax ceiling
10.00%
Set per launch. The curve also caps base fee plus tax at 20%.
Virtual quote reserve
1.68 ETH
The curve's phantom reserve: never held, never withdrawable. Sets the opening price.
Graduation threshold
4.2 ETH
Real quote the curve must take in before it graduates. A non-ETH launch has its own figure.
Pool tick spacing
200
The Uniswap V4 pool created at graduation.
Pool static LP fee
0
Zero by design: the Pons hook is the graduated pool's fee policy.

The first 3 seconds

Every launch carries an anti-snipe tax that decays by 14 successive halvings across a 3-second window, read live from the factory. With the live configuration: 99.00% at launch, 6.18% after one second, 0.19% after two, 0.00% after three.

It is charged against chain time, not your clock, so a quote made inside the window can be a second stale. Addresses the factory exempts, including a creator-fee recipient that is not the deployer, pay none of it.

Uploaded logos

The logo field takes a URL you host, an ipfs:// URI, or an upload: PNG, JPEG, WebP or GIF up to 2 MB, re-encoded to a WebP of at most 512 px on its longer edge with metadata dropped; an animated GIF keeps its first frame. The file is stored under the hash of its bytes, so the same picture always has the same address. That address is written into the token at launch and, like the website and every other identity field, can never be changed. An upload no coin has used within 24 hours is deleted.

Pair tokens and the allowlist

A curve is quoted in one asset, fixed at launch. Native ETH is always accepted. Any other quote asset must be on the factory's allowlist, which only the factory owner can change; neither VANTU nor a creator can add to it. Of the 194 verified Stock Tokens, 53 are approved as pair tokens. The rest can still be basket constituents; they just cannot quote a curve.

  • Economics are per pair token. Each asset has its own virtual reserve and graduation threshold, sized so a launch is worth roughly the same in dollars whichever asset quotes it: NVDA is 16.64 / 41.6, USDG is 3,236 / 8,090. Each coin's own threshold is fixed at launch.
  • Decimals are not always 18. USDG has 6 and CBBTC 8; every amount on a coin page is scaled by the quote asset's own decimals.
  • An ERC-20-quoted buy needs an approval first and sends no ETH; a native buy sends exactly the amount in as ETH. Getting either wrong reverts.

The bonding curve

PonsV2BondingCurve is a constant-product curve against a virtual quote reserve. It is not upgradeable, not a proxy, and cannot be sent ETH outside a trade.

quoteReserve = phantomQuote + realQuoteReserve      (exact, verified on live curves)
k            = quoteReserve × tokenReserve          (invariant across every trade)
price        = quoteReserve / tokenReserve          (quote asset per whole token)
progress     = realQuoteReserve / graduationThreshold
  • Fees come off the quote leg, in both directions. They are subtracted before the swap, so k is preserved exactly, up to integer rounding.
  • There is no on-chain quote function. Every price shown before a trade is computed from the curve's reserves with the contract's exact arithmetic, fees and taxes included, and checked against a simulation before you sign.
  • A buy that overshoots is partially filled and refunded, not reverted. Slippage is enforced as a price bound rather than a quantity.
  • Selling closes before graduation does. The curve rejects a sell the moment the sellable allocation is exhausted, before the graduated flag is set.
  • Progress in quote is not progress in tokens. Both hit 0% and 100% together, but between them they diverge because the curve is a hyperbola: 9.27% raised was 26.34% sold on one live curve. VANTU shows the quote figure, the one the protocol graduates on.

Graduation

The curve never sells its whole supply. With the live configuration it reserves 28.5714% of supply, computed as supply × phantomQuote / (phantomQuote + threshold), and will not go below that floor. So 71.4286% of supply is all it can ever sell, and that sells out at the instant the raised amount reaches 4.2 ETH.

Sold on the curve
71.43%
Held by whoever bought it.
Seeds the Uniswap V4 pool
20.41%
Paired with the full 4.2 ETH raised.
Permanently locked
8.16%
Sent to the Pons locker and never returns.

The pool is a Uniswap V4 position on the PoolManager at 0x8366a39CC670B4001A1121B8F6A443A643e40951, behind the Pons hook at 0xE5e702641Ea86F4ae6cC3cDaeD2B886f976Be044, at tick spacing 200. Neither the creator nor VANTU owns the position: nobody can withdraw it, and there is no unlock date. The pool's static LP fee is zero; the hook charges post-graduation trades. VANTU does not read Uniswap V4 pool state, so a graduated coin's page shows no curve and no price.

Fees

Base trade fee
1.00%
30% Pons · 70% the creator-fee recipient.
Creator tax
0 – 10.00%
The creator-fee recipient, in full.
Buyback split (optional)
50%
Of the creator leg. Buys the coin back into the Pons buyback vault at 0x42df2a798f82289E177311362e8f5ccC45c1219c on a long vest. Only if the creator enabled it at launch.
Anti-snipe tax
99% → 0
Decays to zero over 3 seconds. Stays in the curve.
Launch fee
0.0005 ETH
Plus gas. Paid to Pons.
Basket claim / redeem
None
The vault takes no fee on claims or redemptions, and mints nothing.

Fees are never pushed to the recipient. They accrue as a claimable balance in the Pons fee escrow at 0xd3AFEB2a57f70eF218Aa82451c51B2fb0416Ac9e, which is how a contract such as the basket vault can collect its own fees with no operator and no permission.

The basket vault

Deployed and final. A launch through VANTU creates a vault in the same transaction. The contracts have no owner, pause or upgrade path: nothing can be fixed, paused or recovered after the fact. A new vault holds nothing until the coin has earned creator fees and someone harvests them.

Three generations, and how they distribute

All three are live and all keep working. Every coin page states which generation its vault is.

  • v1 — burn-to-redeem, and only that. Send x coin to the vault and receive x / S of everything it holds, where S is the supply outside it. No claims, no dividends, and immutable, so none can be added later.
  • v2 — paid your share, keeping your coin. Holders claim their time-weighted share of the harvested stocks against a merkle proof. Claiming burns nothing and moves no coin. Burn-to-redeem remains underneath as a floor.
  • v3 — the same claims, with USDG routes. Everything v2 does, and a leg may be priced and bought through a USDG pool as well as a WETH one, so a basket can hold Stock Tokens that have no WETH pool.

Why burn-to-redeem is a floor and not a yield

A creator's share of a trade — the 1.00% base fee split shown under Fees plus any creator tax — is around 1.7% of volume on a typical launch: $10,000 of trading puts roughly $170 of stock behind a 1,000,000,000 supply, and burning 2% of supply returns about $3.40 while those tokens sell for far more. Redeeming only makes sense once backing per coin exceeds market price. Burn-to-redeem is a price floor, not a reward; v2 exists to fix that.

How your share is computed

VANTU does not control the coin's contract, so it cannot track rewards on chain, and a balance check at claim time could be gamed by buying just before claiming. Entitlement is therefore computed off chain from the coin's public transfer history and committed as a merkle root. Weight is an integral, not a snapshot: your weight for an epoch is the sum of balance × time held. Epochs are disjoint, leaves are cumulative, and amounts are floored to whole base units so leaves can never sum past what the vault authorised.

The trust model and its limit

  • One address publishes. The root publisher is fixed at vault creation. The coin's creator may rotate it, but that grants no new power.
  • The cap bounds a bad root. The vault counts what it bought during the open epoch; publishing a root closes the epoch and raises what all roots may collectively pay out by exactly that amount. The coin itself is never distributed.
  • 24 hours before it pays. A root pays nothing for 24 hours, and only one may be in flight at a time.
  • What a bad root can still do. Misallocate the assets harvested since the previous root, plus whatever earlier holders never collected. The harm is bounded and slow, not impossible.

Nothing on chain can tell whether a root is correct; only re-deriving it can. The generator ships as a script that takes nothing on trust: it reads the coin's transfer history and the vault's events from the public chain, rebuilds the tree, and asks the deployed contract whether it agrees.

node scripts/verify-epoch.mjs --vault 0xVAULT --epoch 3

If it prints ROOT MATCHES, the distribution follows the rules above. If it does not, do not claim, and say so publicly: there are 24 hours before that root can pay anyone.

Claim delay
24 hours
Between publishing a root and that root paying anything.
Harvest bounty
1.00%
Of the harvest, to whoever calls it. Taken first, before the creator's split.
Bounty ceiling
0.02 ETH
Caps the bounty however large the harvest.
Creator split ceiling
50.00%
The most of a harvest a creator may take. Fixed at launch.
Constituents
1 to 8
Enforced by the contract. Weights must total exactly 100.00%.

Bitcoin, staked ETH, Zcash: the majors

A basket can hold any token on Robinhood Chain that has a Uniswap V3 pool against WETH or USDG, because that pool is both where a vault buys and where it reads its price floor. None of the majors is issued on this chain, so each one arrives through a bridge, and each needs a pool before a vault can buy it. Both steps are permissionless.

The bridge. Robinhood Chain is an Arbitrum rollup on Ethereum, and its canonical bridge takes any Ethereum ERC-20. The address a token gets here is fixed by the bridge's router before the first deposit. Bitcoin comes as Coinbase's cbBTC or BitGo's WBTC, staked ETH as Lido's wstETH (ether.fi's weETH arrives through LayerZero instead), XRP as Hex Trust's wXRP. ETH itself cannot be a leg: it is what a harvest spends.

TokenAddress on Robinhood ChainArrives through
ZEC Zcash0xfc162b0151b82295eA99593ba61Ed1405aA4CD9Bthe canonical bridge
cbBTC Coinbase Wrapped BTC0xd3FCec4E6C6bF5D7369A912Dd52AB810F9b266d1the canonical bridge
WBTC Wrapped BTC0x6bac06600D220Ac5Ac281AD1f504D2Cf0F90F6e6the canonical bridge
wstETH Wrapped staked ETH0xcD26A6AA5BB008240A998E242F51232FE98B12Cbthe canonical bridge
weETH Wrapped eETH0xA3D68b74bF0528fdD07263c60d6488749044914bLayerZero (Stargate)
LINK Chainlink0x0822560CBDB92a0Af70397379ddb4Dcc4C95C8a7the canonical bridge
XRP Wrapped XRP0x8e0AE7F895A9d6AF2f82BA3B7f1F41102c90b8Cethe canonical bridge
SOL Wrapped SOL0xFDCd29C5c8e40C245e74776AfA8d953A7c86736cthe canonical bridge

The pool. Once the token is here, someone creates its WETH pool and puts liquidity in it. The script reads the Chainlink price of the token and of ETH, initialises the pool at that price (or refuses if an existing pool is more than two percent off), raises the pool's observation cardinality so the vault's thirty-minute floor can exist, and mints one position around the price.

node scripts/seed-pool.mjs --token 0xTOKEN --quote WETH --fee 3000 --token-amount 0.05 --quote-amount 1.6
node scripts/pool-status.mjs --token 0xTOKEN

Three honest limits: a small pool is a small market, so the price floor protects less than it does on a deep one; Wrapped ZEC and wXRP have no Chainlink feed here, so their pools are priced by whoever seeds them; and the on-chain amounts are tiny today, so the first baskets to hold a major will be buying from liquidity VANTU or a creator provided.

Risks

  • Most launches go to zero. Hundreds of Pons coins launch every hour on this chain and the overwhelming majority never graduate. You can lose everything.
  • The first 3 seconds are taxed at up to 99%. Buying into a launch that is seconds old can cost almost the entire input.
  • A creator tax of up to 10.00% applies to both legs, on top of the 1.00% base fee. Check the coin's own figures before a round trip; they are set per launch and immutable.
  • Tokenized stocks are not stocks. They carry issuer, custody and transfer-restriction risk on top of ordinary market risk, and may not be available in your jurisdiction.
  • A basket concentrates you in whatever its weights say. A 75% single-name basket behaves like that single name.
  • A new vault is empty, and may stay empty. A coin that never trades never funds its basket. Do not price a coin as though its basket were already bought.
  • A coin launched anywhere else on Pons has no vault at all. Only a launch made through VANTU names one as its creator-fee recipient.
  • The vault contracts are final. No owner, no pause, no upgrade path.
  • Smart-contract risk applies to Pons V2, to Uniswap V4 and its hook, to the Stock Token contracts, and to the vault.

FAQ

Is the coin quoted in the basket?

No. A curve is quoted in one asset, native ETH or an approved ERC-20; a basket cannot be a pair token. The basket is what the creator's fees are converted into, separate from trading the coin.

Can I redeem a coin for the stocks today?

Only a coin launched through VANTU, and only once its vault has harvested fees. Redeeming sends your coin to the vault and returns that fraction of everything it holds; on a v2 vault you can also claim your share without burning. Other Pons coins have no vault.

Why does a Stock Token show a change over 28 hours instead of 24?

Chainlink equity feeds go quiet outside market hours, so two consecutive rounds are rarely exactly a day apart: in one reading AAPL spanned 27.95 h, MSFT 29.38 h and SPY 42.13 h. Each change is labelled with the hours it really covers rather than rounded to 24h.

Is the total supply always 1 billion?

Yes for the only launch configuration Pons offers today: 1,000,000,000 tokens mint to the curve at creation. The token is burnable, so live total supply can drift below that; the curve prices against the launch supply.

Can the creator pull the liquidity after graduation?

No. The position is created by the factory and locked through the Pons hook and locker. Neither the creator nor VANTU holds it, and there is no unlock date.

Where do the coin logos come from?

A coin's mark is the creator's own on-chain logo, through an IPFS gateway for an ipfs:// URI. A Stock Token's mark is looked up by ticker from a pinned map, since a wrong company is worse than no logo. Anything unresolved falls back to a monogram derived from the address.

Ready to launch one?

A real Pons V2 launch for 0.0005 ETH plus gas. Drafts save locally.

Launch a coin