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), orrouter.launchAndBuy(…)when you add an opening buy. One transaction creates the coin and its bonding-curve market. - Trade:
curve.buy / curve.sellwhile 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
- 0x04D5B7BD6af7063F5191ecf6b6DE5463002d069A
- Network
- Robinhood Chain · chain 4663
- Name and symbol, read from the contract
- …
- Total supply, read from the contract
- …
- Market on FaelTrade
- …
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 bymemeHook.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 oversnipeTaxSeconds(); 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>.webpunder 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
| What | Value | Source / verification |
|---|---|---|
| Chain | Robinhood Chain · 4663 | https://docs.robinhood.com/chain/ (Robinhood Chain = 4663, Robinhood Chain Testnet = 46630); eth_chainId |
| Factory | 0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e | Sourcify exact match · PonsV2LaunchFactory · deploy block 26841846 |
| Launch-and-Buy router | 0xe33E9E479dF8802cb0866d5d05258bEc4cF62948 | Sourcify exact match · equals factory.launchForwarder() |
| Launch deployer | 0x3711ceA4feaDE896C913C68F01Eda97Cb06D1A42 | Sourcify exact match · holds curve and token creation code |
| Fee escrow | 0xd3AFEB2a57f70eF218Aa82451c51B2fb0416Ac9e | Sourcify match · equals factory.feeEscrow() |
| Fee policy hook | 0xE5e702641Ea86F4ae6cC3cDaeD2B886f976Be044 | Sourcify match · equals factory.memeHook() |
| Locker | 0x267444D099b10fB5Ed7c3Cc7B7c767AdcA574952 | Sourcify match · equals factory.locker() |
| Uniswap v4 PoolManager | 0x8366a39CC670B4001A1121B8F6A443A643e40951 | Uniswap deployments feed · equals factory.poolManager() |
| V4Quoter / Universal Router | 0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94 · 0x06AfBA43Fd06227fA663b0DAecF536f6EaA6bf99 | Uniswap deployments feed; router struct layout checked against its verified source; swaps proven on a fork |
| Pairing assets | 65 listed | factory 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 docs | https://docs.ponsfamily.com/docs/v2 | Addresses, 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.