Technical whitepaper

Every coin is a payment token on anychain.fun.

A memestock launchpad on PONS v2, Robinhood Chain, with payment from any chain

Version
1.0
Verified against the chain
6 Sept 2026
Network
Robinhood Chain, id 4663
Site
anychain.fun
Abstract

This document describes what anychain.fun is built on and how it works, down to the contracts, their addresses, the arithmetic and the wire calls. Every number in it was read from the chain or from a live API on the date above, and the page rebuilds from the same data files the site runs on.

1. Abstract

anychain.fun is a launchpad for memestocks: ERC-20 tokens launched around a stock narrative, priced by a bonding curve, settled on Robinhood Chain (chain id 4663). The curve and the launch factory are PONS v2, used exactly as Pons deployed them; anychain.fun adds no contract of its own. What it adds is the payment side: a buyer holding SOL, an xStock, USDC, ETH, BNB or POL on Solana, Ethereum, Base, BNB Chain or Polygon pays with that, from the wallet they already have, and receives the token in a Robinhood Chain wallet. The bridge is Relay, which reaches chain 4663 directly; when a curve trades in a tokenized stock rather than ETH, OKX's on chain aggregator turns the landed ETH into that stock; the last signature is the curve buy itself.

Launches made through the site are recognisable from the chain alone, by a tag in the CREATE2 salt, so the site's own index can be rebuilt by anyone from public data. Nothing is custodied: every transaction is the user's wallet signing on the chain the transaction lives on.

2. Robinhood Chain

Table 1. Chain facts
Chain id
4663 (0x1237)
Native asset
ETH, 18 decimals
Block time
about 0.1 s (10,000 blocks measured at 0.101 s each)
Settlement
Arbitrum technology; deposits originate on Ethereum mainnet
Public RPC
rpc.mainnet.chain.robinhood.com
Explorer
robinhoodchain.blockscout.com (Blockscout v11)
Tokenized equities
194 ERC-20s read from the chain, 18 decimals, one share each
DEXs
Uniswap V3 and Uniswap V4 are deployed; PONS v2 graduates into V4

The public RPC shapes several design decisions. It is not archival, so state at old blocks cannot be read. eth_getLogs takes at most 50,000 blocks per call, at most 10,000 matching logs, and refuses a query without an address. It serves no logs older than a floor that moves forward with time, about 2.3 days behind the head at 0.1 s per block. It also answers browsers with a malformed CORS header, so the site never reads the chain from the browser: reads go through the site's own server routes, and a connected wallet's provider carries receipts.

3. The contracts anychain runs on

anychain.fun launches, prices and trades memestocks on PONS v2, the launch factory and bonding curve contracts by Pons Labs on Robinhood Chain. anychain.fun owns everything around them: the launch page and its opening buy path, the tag that marks its launches on chain, the indexer, the cross chain payment route, the token pages and the trade panel. The two contracts the site talks to are verified on Blockscout; the per launch contracts (each token and its curve) are not verified there, so their interfaces were taken from Pons's public repository, ponsdotdev/ponsfamily, directory contractsV2/src/v2. Pons states that v2 is unaudited.

Why Pons, and why not a fork. Building on Pons is the point, not a shortcut: every token launched here is a Pons token, listed on Pons, and every Pons token is buyable here from any chain, so the two grow together. Running a copy of these contracts under the anychain.fun name would buy a headline and little else today: the copy would be equally unaudited, graduation into Uniswap V4 with a locked position would have to be operated by us, every token launched here would lose its listing on Pons's own explorer and the liquidity that follows it, and the curve would be exactly the same arithmetic. What a fork would add is a fee. The plan for that is narrower and safer: a thin anychain.fun router contract that wraps launch and buy, takes a small fee, and leaves the curve untouched, once there is volume worth a fee.

  • PonsV2LaunchFactory at 0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e. Deploys a token and a curve per launch through a CREATE2 deployer, holds the launch configuration, the paired asset allowlist, the launch fee and the launch enabled flag, and graduates curves into Uniswap V4.
  • PonsV2LaunchAndBuy at 0xe33E9E479dF8802cb0866d5d05258bEc4cF62948. The factory's launchForwarder: launches on the caller's behalf through launchTokenFor and performs the opening buy in the same transaction.
  • PonsV2BondingCurve, one per launch. Holds the token supply and the quote asset, prices trades by constant product over virtual reserves, accrues fees, and hands its reserves to the factory at graduation.
  • PonsV2LauncherToken, one per launch. A standard ERC-20 that also exposes logo(), description() and socials() as stored at launch.
  • Fee policy and hook at 0xE5e702641Ea86F4ae6cC3cDaeD2B886f976Be044, fee escrow at 0xd3AFEB2a57f70eF218Aa82451c51B2fb0416Ac9e, buyback vault at 0x42df2a798f82289E177311362e8f5ccC45c1219c, locker at 0x267444D099b10fB5Ed7c3Cc7B7c767AdcA574952, and the Uniswap V4 PoolManager at 0x8366a39CC670B4001A1121B8F6A443A643e40951.
SOURCE CHAINSSolanaEthereumBaseBNB ChainPolygonBRIDGERelaysource asset to ETHROBINHOOD CHAIN 4663Buyer walletETH lands hereabout 1 sOKX aggregatorETH to stockstock pair onlyPONS v2 curvebuy / sellETH pairapprove, buyPONS v2 factorylaunchTokenSITEanychain.funindexer
Figure 1. What sits where. Relay carries a source asset into ETH on Robinhood Chain; OKX's aggregator turns it into the paired stock when a curve needs one; the curve is PONS v2. The site and its indexer only read the chain.
Table 2. Factory parameters, read 6 Sept 2026
launchEnabled
true, so canLaunch(x) is true for everyone
launchFee
0.0005 ETH, msg.value must equal it exactly
launchConfigCount
1, id 0
Config 0
supply 1e9 tokens, curveFeeBps 100, phantomQuote 1.68 ETH, graduationThreshold 4.2 ETH, poolFee 0, tickSpacing 200, enabled
maxCreatorTaxBps
1,000 (10%); total trade fee capped at 2,000
Snipe tax
snipeTaxStartBps 9,900 over snipeTaxSeconds 3; ceilings 9,900 bps, 60 s, 32 exemptions
Approved paired assets
native ETH plus 53 of the 194 tokenized equities; WETH is not approved

4. Launching

The factory exposes three launch entry points; the site uses the first two.

launchToken(TokenParams params, uint256 launchConfigId, address pairToken)
  payable returns (address token, address curve)                     // selector 0xb04c4db7
launchToken(TokenParams params, uint256 launchConfigId, address pairToken,
  address[] snipeTaxExemptions) payable returns (address, address)   // selector 0xa72101af
launchTokenFor(TokenParams, uint256, address pairToken, address originalDeployer,
  address[] snipeTaxExemptions) payable                              // only the launchForwarder

struct TokenParams {
  string name; string symbol; string logo; string description;
  Socials socials;               // twitter, telegram, discord, website, farcaster
  address creatorFeeRecipient;   // zero means the caller, on the direct path only
  uint16  creatorTaxBps;         // 0 to 1000
  bool    buybackEnabled;
  bytes32 expectedEconomics;     // previewLaunchEconomics(configId, pairToken), or zero to waive
  bytes32 salt;                  // CREATE2, see section 5
}

A launch without an opening buy is a direct call to launchToken with value equal to launchFee. A launch with an opening buy goes through the router:

PonsV2LaunchAndBuy.launchAndBuy(TokenParams params, uint256 launchConfigId, address pairToken,
  uint256 quoteIn, uint256 minTokensOut, address recipient, address[] snipeTaxExemptions) payable
  returns (address token, address curve, uint256 tokensOut)

value = launchFee + quoteIn      // ETH pair
value = launchFee                // stock pair; quoteIn is pulled by transferFrom, so approve the router first
Launch pageTokenParams, salt tagFactorylaunchToken(params, 0, pair)RouterlaunchAndBuy(..., quoteIn)no opening buywith opening buylaunchTokenForTokenERC-20, CREATE2Curveone per launchvalue = launchFee (+ quoteIn on an ETH pair)salt = tag ++ random(24 bytes)expectedEconomics pinned
Figure 2. A launch. Without an opening buy the page calls the factory; with one it calls the router, which launches on the caller's behalf and buys in the same transaction. The factory deploys the token and its curve by CREATE2, so the salt is part of the address.

Two facts about the router path were established by simulation against the live contracts on 6 Sept 2026. First, creatorFeeRecipient must be explicit: through the router the factory's caller is the router, so a zero address reverts with ZeroAddress() (selector 0xd92e233d). Second, a 0.01 ETH opening buy on a fresh ETH curve returned 5,858,335 tokens, exactly the curve arithmetic of section 6 with no snipe tax, because the factory exempts the launcher and the creator fee recipient before trading opens. With a stock pair and no allowance the router reverts with ERC20InsufficientAllowance (0xfb8f41b2), which is why the site approves the stock to the router before sending.

expectedEconomics pins the paired asset's economics at send time: the factory reverts if Pons changes phantom quote or graduation threshold between the preview and the transaction. The site always pins.

5. The anychain tag

The salt is 32 bytes the factory feeds to CREATE2. The site fills the first eight bytes with a constant and the remaining twenty four with randomness:

tag  = keccak256("anychain.fun")[0..8] = 0x54cadb5bb321177e
salt = tag ++ random(24 bytes)

The salt is not emitted in an event, but it is in the calldata of every launch transaction. Anyone can therefore rebuild the list of anychain.fun launches from the chain alone: read TokenLaunched logs on the factory, fetch each transaction, decode launchToken or launchAndBuy, and keep the ones whose salt starts with the tag. That is exactly what the indexer in section 10 does. The tag proves origin, not quality: it says the launch came through this site, nothing more.

6. Curve arithmetic

A curve holds a real quote balance (trackedQuote) and the tokens (trackedTokens). Pricing uses virtual reserves: the quote side is padded by a constant phantomQuote so the first buy is not free, and fees already accrued are excluded.

quoteReserve  = phantomQuote + trackedQuote - quoteFeeBalance - creatorTaxBalance
tokenReserve  = trackedTokens
sellable      = trackedTokens - reservedTokens          // what is still for sale
readyToGraduate = sellable == 0

buy(quoteIn):
  fee  = quoteIn * feeBps / 10000
  tax  = quoteIn * creatorTaxBps / 10000
  net  = quoteIn - fee - tax
  out  = tokenReserve * net / (quoteReserve + net)     // constant product, no extra fee
  if out > sellable: out = sellable and quoteIn is reduced to what that costs; the rest is refunded
  slippage check: spent * minTokensOut <= received * out   (a price bound, so partial fills still pass)

sell(tokensIn):
  gross = quoteReserve * tokensIn / (tokenReserve + tokensIn)
  out   = gross - gross * feeBps / 10000 - gross * creatorTaxBps / 10000
  sell needs the token approved to the curve; it is closed once sellable == 0

For config 0 with an ETH pair, phantomQuote is 1.68 ETH and reservedTokens is 285,714,285.71 tokens, two sevenths of supply, kept back to seed the graduated pool; 714,285,714.29 tokens are sellable. The spot price shown on the site is quoteReserve / tokenReserve, and market cap is that price times the 1e9 supply, both in the paired asset's units. For a stock pair the same shape applies with the asset's own economics, for example SPY phantom 4.36 shares and graduation at 10.9 shares, TSLA 10.4 and 26, NVDA 16.64 and 41.6.

graduation: 4.2 ETH raised, 714M soldstart: 1.68e-9 ETH per token (phantom 1.68 ETH)12.3x the opening pricetokens sold (of 1B supply; 28.6% reserved for the pool)spot price
Figure 3. Spot price along an ETH paired curve, from the constant product over the virtual reserves, up to the sellable allocation. Drawn from the same parameters the site uses.

Worked example: 0.01 ETH into a fresh ETH curve. net = 0.0099 ETH; out = 1e9 × 0.0099 / (1.68 + 0.0099) = 5,858,335 tokens, 0.59% of supply. The site's previews compute exactly this, with the live reserves, before any signature.

7. Fees, taxes and the launch window

Table 3. Every fee a launch or a trade pays
Curve fee
1% of the quote leg on every buy and sell (feeBps 100)
Creator tax
0 to 10%, chosen at launch, on top of the curve fee, to creatorFeeRecipient
Protocol share
protocolFeeShareBps 3,000: 30% of swept curve fees to Pons
Buyback route
buybackBurnBps 5,000 when buybackEnabled; maxInternalPriceImpactBps 300
Launch fee
0.0005 ETH to the factory per launch
Launch window
99% snipe tax on buys in the first 3 seconds, decaying linearly to zero; launcher, fee recipient and declared wallets exempt
anychain.fun
takes no fee of its own today

Fees accrue inside the curve (quoteFeeBalance, creatorTaxBalance) and are distributed by sweepFees, callable by the creator or by Pons's sweep operator, and forced at graduation. Cross chain buys additionally pay Relay's fee (about 0.06 USD on a 10 USDC route on 6 Sept 2026) and, for stock pairs, OKX's aggregator route on chain 4663.

8. Graduation

When the sellable allocation is bought out (equivalently, when the real quote reserve reaches graduationThreshold), the curve is ready. The crossing buy tries to graduate automatically; if that fails the state stays open and graduate() is permissionless, so no holder can be stranded. At graduation the curve sweeps fees, halts trading, and hands its remaining quote and the reserved tokens to the factory, which seeds a Uniswap V4 pool through the PoolManager at 0x8366a39CC670B4001A1121B8F6A443A643e40951 with tickSpacing 200 and the fee policy hook at 0xE5e702641Ea86F4ae6cC3cDaeD2B886f976Be044; the position is held by the locker at 0x267444D099b10fB5Ed7c3Cc7B7c767AdcA574952. Pons describes the liquidity as locked. After graduation the token trades on that pool, not on this site.

9. Paying from any chain

The Any chain tab on a token page runs the sequence below. Every step is the buyer's own wallet signing; the site holds no keys and no funds. Verified against Relay, OKX and the chain on 6 Sept 2026.

BuyerSource chainRelayRobinhood ChainOKXCurve1 quote (user, recipient, asset, amount)steps, delivered ETH, requestId2 sign approve / depositdeposit observed3 ETH to recipient (about 1 s)4 swap ETH to stock (stock pair only)calldata, signed by buyer5 buy(quoteIn, minTokensOut, recipient)tokens
Figure 4. The cross chain payment as a sequence. Solid arrows are the buyer's signatures or a service acting on them; dashed arrows are responses. Steps 4 and its response exist only for a stock paired curve.
  1. Quote. POST api.relay.link/quote with user, recipient (the buyer's Robinhood Chain address, or any address they type), originChainId, originCurrency, destinationChainId 4663, destinationCurrency 0x0 (ETH), amount, tradeType EXACT_INPUT. Relay answers with a requestId, the delivered ETH, a time estimate (about 1 s on every route tested), fees, the sender's balance, and steps. The site proxies this through its own route and refreshes the quote as the amount changes.
  2. Sign on the source chain. Each step item is a transaction. On an EVM chain the connected wallet is switched to the source chain (wallet_switchEthereumChain, adding it if unknown), the item's to, data, value and chainId are sent with eth_sendTransaction, and the receipt is awaited; an ERC-20 source has an approve step first, a native one has only the deposit. On Solana the item is a list of instructions plus address lookup tables; the site builds a v0 transaction with a recent blockhash (through its own narrow RPC proxy) and asks a Phantom style wallet, connected separately on the panel, to sign and send.
  3. Landing. GET api.relay.link/intents/status?requestId until status is success (failure and refund are surfaced as such; anything not delivered is refunded to the source wallet by Relay). The site also watches the recipient's ETH balance on Robinhood Chain and takes the observed delta as the landed amount. When the recipient is a typed address rather than the connected wallet, the flow ends here, since the site cannot sign for that address.
  4. Stock swap, only for a stock pair. OKX DEX aggregator, V6 on web3.okx.com: GET /api/v6/dex/aggregator/swap with chainIndex 4663, fromTokenAddress 0xeeee…eeee (native), toTokenAddress the stock, amount = landed ETH minus a 0.0003 ETH gas reserve, slippagePercent 1, userWalletAddress the buyer. OKX returns to, data, value and gas; the wallet signs it on chain 4663. The received stock is measured as a balance delta, then approved to the curve.
  5. The curve. curve.buy(quoteIn, minTokensOut, recipient) with value = quoteIn for an ETH pair, or with the stock allowance in place. minTokensOut is 97% of the curve arithmetic at that moment for the cross chain flow, 99% for a plain buy on the Buy tab.

Sources listed on the site: Solana (SOL, USDC, AAPLx, 28 more); Ethereum (ETH, USDC); Base (ETH, USDC); BNB Chain (BNB, USDC, BABAB, 476 more); Polygon (POL, USDC). Relay identifies Solana as chain 792703809. OKX's cross chain product does not reach chain 4663 in either direction, which is why the bridge is Relay and OKX is used only for the same chain stock swap.

10. The indexer

A small service on anychain.fun's own server (Node, Postgres 16, under pm2) is the site's memory. It reads the chain, never writes to it, and everything it holds can be rebuilt from public data.

  • Launch scan, every 4 s: TokenLaunched logs on the factory from a stored cursor, in windows of 49,000 blocks; for each log the launch transaction is fetched and decoded (launchToken on the factory or launchAndBuy on the router; other callers are skipped) and kept when the salt carries the tag. Stored: token, curve, deployer, pair token and its symbol and decimals, graduation threshold, name, symbol, description, logo, socials, salt, block, transaction, timestamp, creator tax.
  • Push: the launch page posts its transaction hash the moment the receipt lands, so the row exists before the link to the token page is shown. If a page is opened before that, it reads the launch straight from the chain (the factory log for that token, the tag check, the strings, the curve numbers) and never shows a blank.
  • Metrics, every 8 s per launch: realQuoteReserve, getReserves, readyToGraduate, and CurveBuy logs since the last pass for distinct buyers. Raised, progress, spot price, graduated and buyers come from this.
  • Factory wide stats, every 60 s: every TokenLaunched log (not only tagged ones) into a launches table, and CurveBuy and CurveSell logs for the curves launched in the last 24 hours, scanned incrementally in address batches, splitting any window that trips the 10,000 match cap. The stats page reads the aggregates.
  • Images: token artwork uploaded on the launch page is stored by content hash and served back under the site's origin, so the URL written on chain is stable.
  • Removal: a launch can be deleted from the site on the operator's word and blocked from re-indexing. The chain keeps it.

Load: the board is rendered into the home page's HTML from the indexer and revalidated every 20 s, the stats page every 30 s, so visitors do not reach the box one by one; the box itself caches its two hot reads for 3 s and rate limits by address. Postgres is doing tens of rows per second at most; the real ceiling is the public RPC, which is why the scans are incremental and windowed.

11. The site

Next.js on Vercel, plain CSS, two fonts. All chain reads happen in server routes; all chain writes happen in the browser through the user's wallet (EIP-6963 discovery for EVM wallets, Phantom for Solana). Secrets (OKX keys, the indexer secret) live on the server only.

/api/board
the indexer's launches, newest first
/api/pons/launch
launchFee, launchEnabled, previewLaunchEconomics, allowlist, read live with retry and a last good fallback
/api/curve/[curve]
reserves, sellable, feeBps, creatorTaxBps, graduated
/api/launched
pushes a launch transaction to the indexer
/api/upload, /i/[id]
artwork in, artwork out
/api/xchain/quote, /api/xchain/status
Relay quote and delivery status
/api/okx/swap, /api/okx/aggquote
OKX aggregator swap and quote on chain 4663
/api/solana/rpc
read only Solana JSON-RPC pass-through for building the Solana transaction

12. Trust model and failure modes

  • No custody. The site never holds funds or keys. A buyer's assets move source wallet to Relay's contracts to the buyer's Robinhood Chain wallet to the curve, each hop signed by the buyer.
  • Contracts. PONS v2 is unaudited by Pons's own statement. Its factory owner can change the launch fee, the allowlist, the configuration and the launch enabled flag; a pinned expectedEconomics protects a launch in flight from a mid transaction change, nothing protects against future changes.
  • If Relay fails to deliver, funds are refunded to the source wallet by Relay; the site reports failure or refund and stops.
  • If the OKX swap or the curve buy fails after landing, the ETH (or the stock) is already in the buyer's Robinhood Chain wallet and can be traded from the Buy tab or anywhere else. Nothing is stuck in a site contract, because there is none.
  • Prices shown before a signature are the curve's own arithmetic on live reserves and Relay's or OKX's live quotes, bounded on execution by minTokensOut and slippage parameters; a move beyond the bound reverts rather than fills badly.
  • The indexer is a convenience, not an oracle: every number it serves can be recomputed from the chain, and the trade panel reads the curve live regardless.

13. Known limits

  • The public RPC keeps about 2.3 days of logs, so factory wide statistics have 24 and 48 hour windows only, and the indexer cannot backfill launches older than that. An archival RPC would lift this.
  • bStocks on BNB Chain are not offered as a source yet because their contract addresses have not been verified.
  • The Solana leg needs an injected Phantom style wallet; wallet standard discovery is not implemented.
  • Buyer counts are distinct CurveBuy recipients since launch, not current holders.
  • The cross chain flow is verified by live quotes and contract simulation, and by launches and curve buys made through the site; it has not yet carried a real cross chain payment end to end at the time of writing.

14. Roadmap

  1. PONS v2 curve, unchanged

    shipped

    The bonding curve is the part that already works. We do not fork it and we do not tune it.

  2. Launch page

    shipped

    Name, ticker, description, image, socials, paired asset. One button, shaped like Pons's own create page.

  3. Launch on the PONS v2 factory

    shipped

    Deploy from the browser onto the live factory on Robinhood Chain, in ETH or in the stock itself. The board reads real curves.

  4. Buy and sell on the curve from the site

    shipped

    Every token launched here has a page with a live trade panel on its PONS v2 curve, in ETH or the paired stock. Launches can open with a developer buy through Pons's router.

  5. Pay from any chain

    shipped

    The first tab on every token page. Pick the chain and the asset (SOL, the xStocks, USDC, ETH, BNB, POL), connect the wallet for that chain (Phantom for Solana, your EVM wallet elsewhere), choose where the token lands, and sign. Relay carries it into ETH on Robinhood Chain in about a second, OKX swaps it into the paired stock when the curve needs one, the curve buys.

  6. Stats

    shipped

    Every launch and curve trade on the PONS v2 factory, counted from the chain by our indexer and shown factory wide, with anychain.fun's own launches beside them.

  7. bStocks and Ondo on BNB Chain

    shipped

    BNB Chain bStocks, Ondo tokenized stocks and the BNB xStocks as payment sources, with their addresses from OKX's and Relay's token lists.

  8. Conversion stats

    shipped

    What got converted into memestocks through anychain.fun, by chain and asset, recorded per Relay request and verified server side before it counts.

  9. An anychain router contract

    later

    A thin contract that wraps launch and buy and takes a small fee, leaving Pons's curve untouched, once there is volume worth a fee.

15. Addresses

All on Robinhood Chain, chain id 4663, unless stated.

Table 4. Contract and asset addresses
PonsV2LaunchFactoryverified source on Blockscout; launches, allowlist, config, fee
0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e
PonsV2LaunchAndBuy (router, launchForwarder)verified; launch plus opening buy in one transaction
0xe33E9E479dF8802cb0866d5d05258bEc4cF62948
Fee policy / meme hookthe curve's feePolicy; the Uniswap V4 hook after graduation
0xE5e702641Ea86F4ae6cC3cDaeD2B886f976Be044
Fee escrowwhere swept fees settle
0xd3AFEB2a57f70eF218Aa82451c51B2fb0416Ac9e
Buyback vaultbuyback and lock route for creator fees
0x42df2a798f82289E177311362e8f5ccC45c1219c
Lockerholds the graduated pool position
0x267444D099b10fB5Ed7c3Cc7B7c767AdcA574952
Uniswap V4 PoolManagergraduated curves become V4 pools here
0x8366a39CC670B4001A1121B8F6A443A643e40951
Launch deployerthe factory's CREATE2 deployer for tokens and curves
0x3711ceA4feaDE896C913C68F01Eda97Cb06D1A42
Factory owner, protocol fee recipientPons
0x263ed295dAFaE1d9AAdD6E56c4B6F9f38eE019Dd
USDG6 decimal stable used as a quote asset by other launchers
0x5fc5360d0400a0fd4f2af552add042d716f1d168
OKX aggregator approval contract (chain 4663)spender for ERC-20 inputs to OKX swaps
0x42170295F1173c9e5874ea9d00c6d137E1a4f53d
SPY (tokenized equity)example paired asset; graduates at 10.9 shares
0x117cc2133c37B721F49dE2A7a74833232B3B4C0C
TSLA (tokenized equity)example paired asset; graduates at 26 shares
0x322F0929c4625eD5bAd873c95208D54E1c003b2d
Relay chain idsorigin ids used in quotes
Solana 792703809, Ethereum 1, Base 8453, BNB Chain 56, Polygon 137, Robinhood Chain 4663
anychain salt tagfirst 8 bytes of every salt the site sends
0x54cadb5bb321177e

The 53 approved paired assets with their per asset economics are listed on the docs page, read from the factory.

16. References

  1. [1] Pons Labs, PONS v2 contracts, repository ponsdotdev/ponsfamily, directory contractsV2/src/v2: PonsV2LaunchFactory.sol, PonsV2BondingCurve.sol, PonsV2LauncherToken.sol, ILaunchpadV2.sol.
  2. [2] Robinhood Chain explorer, robinhoodchain.blockscout.com, verified sources of the factory at 0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e and the router at 0xe33E9E479dF8802cb0866d5d05258bEc4cF62948.
  3. [3] Relay, api.relay.link: POST /quote, GET /intents/status, GET /chains, POST /currencies/v1. Chain ids as listed in Table 4.
  4. [4] OKX DEX API v6, web3.okx.com: /api/v6/dex/aggregator/quote and /swap on chain index 4663; /api/v6/dex/cross-chain/supported/tokens for the xStock lists.
  5. [5] Robinhood Chain public RPC, rpc.mainnet.chain.robinhood.com, and the tokenized equity list read from it on 2 September 2026 (194 contracts).
  6. [6] anychain.fun source: the salt tag, the indexer, the routes and the figures in this paper are drawn from the same configuration files the site runs on.