Skip to content

Docs

How FaelTrade works

FaelTrade is a token launchpad and market directory for Robinhood Chain. Create a coin paired with a supported asset — ETH, USDG or a Robinhood Stock Token — on the Pons V2 bonding-curve contracts, and trade it from the first block.

Runs on the Pons V2 contracts on Robinhood Chain. FaelTrade is an independent interface, not operated by or affiliated with pons.

What FaelTrade is

FaelTrade is an independent interface to the Pons V2 launchpad contracts on Robinhood Chain. It prepares launch and trade transactions for your wallet to sign, indexes the factory’s and curves’ events into a market directory, and reads everything it shows from the chain. It owns no contracts, holds no keys, and takes no fee.

  • Launch: factory.launchToken(params, configId, pairToken), or router.launchAndBuy(…) when you add an opening buy. One transaction creates the coin and its bonding-curve market.
  • Trade: curve.buy / curve.sell while the curve is open; Uniswap’s Universal Router with a V4Quoter quote after graduation.
  • Earn: creators sweep fees from their curve into the protocol’s escrow and claim them from there.

Official token and channels

FaelTrade’s token is $FAELTRD. Its contract address is configuration, not copy: the site reads it from the deployment (NEXT_PUBLIC_FAELTRD_ADDRESS) and, once it is set, shows what the contract reports on-chain (name, symbol, supply) and whether a FaelTrade market exists for it. Until then it reads “Soon” and there is nothing to buy.

The only official channel is X: @usefaeltrade. The address is published there and here first; an address from any other source is not FaelTrade’s.

Official token

$FAELTRD

Contract address published
Network
Robinhood Chain · chain 4663
Name and symbol, read from the contract
…
Total supply, read from the contract
…
Market on FaelTrade
…
Follow @usefaeltrade

The contract address is published here and on X first. An address from anywhere else is not FaelTrade’s.

Pairing, explained

Pairing is a liquidity mechanism: the paired asset is what buyers pay with and what sellers receive on the curve. A coin paired with an asset is not backed by it, not redeemable for it, and grants no ownership of it.

The factory only accepts assets on its own approval list (approvedPairTokens), each with per-asset economics (virtual reserve, graduation threshold, decimals). FaelTrade lists an asset only when that approval holds and its issuer publishes the same contract address: Robinhood’s Stock Token registry for tokenized stocks, Paxos’ address list for USDG. Native ETH is the zero address.

  • Native ETH: 1 asset
  • Stablecoins: 1 asset
  • Tokenized stocks: 63 assets
  • Protocol-approved, identity unverified: cbBTC, TAO, ORBIO, SHROOM, Index, BUN, wsNET — accepted by the factory, but no issuer source confirms them. They can be imported by address in the launch flow and are labelled as unverified.

65 assets listed; approval events scanned to block 76,329,422; verified 2026-09-30. Wrapped ETH is not on the factory’s list and is therefore not offered; native ETH is.

Fees and where they come from

Every fee shown in the product is read live from the contracts, never typed into the code:

  • Launch fee — factory.launchFee(), paid as transaction value to the protocol.
  • Curve trade fee — getLaunchConfig(id).curveFeeBps; split by memeHook.currentFeePolicy() into protocol share, creator share and (when enabled) buyback.
  • Creator tax — chosen at launch, capped by maxCreatorTaxBps(), immutable afterwards, paid to the creator.
  • Launch-window tax — snipeTaxStartBps() decaying over snipeTaxSeconds(); the creator’s wallet is exempt.
  • FaelTrade fee — none. There is no FaelTrade contract in the path.

Terms are pinned into each launch with expectedEconomics; a launch reverts if the owner changes them between review and inclusion. The transparency section on the landing page shows the current values.

What is stored where

On-chain, immutable
Name, symbol, description, links and the logo URL, written into the coin contract by the factory (getTokenInfo()). They cannot be edited after launch by anyone.
FaelTrade storage
The logo image bytes only: re-encoded to a 512×512 WebP, addressed by SHA-256, served from /api/media/<hash>.webp under the site’s public origin. Because the URL is written on-chain, uploads are refused until a public https origin is configured. The bytes at a hash never change.
Market index
A Postgres (or local PGlite) copy of confirmed events: markets, curve trades, checkpoints and curve snapshots, all keyed by chain id. It is a cache of the chain, rebuilt from events; it never contains a launch the chain did not confirm.
Your browser
Launch drafts and the pending transaction hash (so a refresh resumes waiting for the receipt), plus the motion preference. Never shared market data.

Integration status (live)

Explicit capability checks, read from the chain when this page loads. A failing check disables only the action that depends on it and names the missing requirement.

Checking the protocol…

Verified sources

WhatValueSource / verification
ChainRobinhood Chain · 4663https://docs.robinhood.com/chain/ (Robinhood Chain = 4663, Robinhood Chain Testnet = 46630); eth_chainId
Factory0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7eSourcify exact match · PonsV2LaunchFactory · deploy block 26841846
Launch-and-Buy router0xe33E9E479dF8802cb0866d5d05258bEc4cF62948Sourcify exact match · equals factory.launchForwarder()
Launch deployer0x3711ceA4feaDE896C913C68F01Eda97Cb06D1A42Sourcify exact match · holds curve and token creation code
Fee escrow0xd3AFEB2a57f70eF218Aa82451c51B2fb0416Ac9eSourcify match · equals factory.feeEscrow()
Fee policy hook0xE5e702641Ea86F4ae6cC3cDaeD2B886f976Be044Sourcify match · equals factory.memeHook()
Locker0x267444D099b10fB5Ed7c3Cc7B7c767AdcA574952Sourcify match · equals factory.locker()
Uniswap v4 PoolManager0x8366a39CC670B4001A1121B8F6A443A643e40951Uniswap deployments feed · equals factory.poolManager()
V4Quoter / Universal Router0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94 · 0x06AfBA43Fd06227fA663b0DAecF536f6EaA6bf99Uniswap deployments feed; router struct layout checked against its verified source; swaps proven on a fork
Pairing assets65 listedfactory PairTokenApprovalUpdated events + approvedPairTokens()/pairTokenEconomics() · https://api.robinhood.com/rhj/assets → assets[].deployments[chainId=4663].contractAddress · terms() · shared issuer beacon · https://docs.paxos.com/guides/stablecoin/usdg/mainnet → "Robinhood Mainnet"
Protocol docshttps://docs.ponsfamily.com/docs/v2Addresses, events to index, “no pons API in the trust path”, graduated pools described as permanently locked, audits in progress

Re-verify at any time with pnpm verify:config; the ABIs are regenerated from Sourcify with pnpm abi:export. Last verification: 2026-09-30T07:17:36.629Z.

Networks

  • Robinhood Chain · 4663 this build

    Pons V2 factory and router are deployed and Sourcify exact-match verified. This is the production target.

  • Robinhood Chain Testnet · 46630

    The network exists, but the Pons V2 factory and router have no bytecode on it, so launches are impossible there. Use the local fork for testing.

  • Local Anvil fork of Robinhood Chain · 31337

    Development only: the real contracts copied with the chain state, test balances, no real value.

Dependency checklist

Each item below gates exactly one feature. Nothing else is simulated in its absence.

  • DATABASE_URL (Postgres) — the full market directory, 24h volume, ranking by liquidity or volume, portfolio coin positions, logo storage. Without it, Explore lists only the newest launches, read straight from the chain; markets remain readable by address and launches still work, without a logo.
  • NEXT_PUBLIC_SITE_URL (public https origin) — the address logo URLs are minted from. A Vercel production build falls back to the project’s own production domain; anywhere else, without it, launches go out without a logo.
  • NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID — the WalletConnect option in the connect dialog. Injected wallets always work.
  • RPC_URL (optional private RPC) — steadier indexing under load; the public endpoint is used otherwise.
  • CRON_SECRET — protects the scheduled sync endpoint.
  • NEXT_PUBLIC_FAELTRD_ADDRESS — the $FAELTRD contract address shown on the site. Empty = “Soon”. A malformed value fails the build instead of showing a wrong address.
  • Pairing-asset prices — DefiLlama, key-free; when unreachable, USD sorting and valuations read “Unavailable”.

Security notes

  • FaelTrade never asks for a seed phrase or private key; every transaction is simulated, then signed in your wallet.
  • Approvals are for the exact amount of the action and are consumed by it; no unlimited approvals are requested.
  • Terms, balances, allowances and quotes are re-read immediately before signing; stale quotes are refreshed first.
  • Server inputs are validated (addresses, hashes, sizes, types); logos are re-encoded; the read-only RPC relay forwards query methods only; expensive routes are rate-limited; the server never fetches user-supplied URLs.
  • Success is derived from receipts and the factory’s event, never from the UI. No animation is tied to transaction state.
  • The Pons V2 contracts are source-verified but were not audited by FaelTrade. Coins launched here are not reviewed; nothing here calls a coin safe.