Docs

Follow the money.

The network, the contracts, the exact call, and what is actually enforced.

What GO FUND is

GO FUND is a launchpad. You create a token, you name a fundraiser, and the token's creator fees are paid to the GO FUND treasury instead of to you. Trading the token is what generates those fees, so activity on the market becomes funding for the cause.

It is a thin layer. GO FUND does not run a chain, does not hold your keys, and does not take custody of anything. It builds one transaction, points its fee field at a fixed address, and asks your wallet to sign it. Everything after that happens on Pons, a launchpad protocol on Robinhood Chain.

The system, end to end

LayerWhoWhat it does
InterfaceGO FUNDCollects the token details, hard-sets the fee destination, builds and simulates the call.
WalletYouHolds the keys and signs. MetaMask or Rabby, connected through Privy.
LaunchpadPons v2Deploys the token and its bonding curve, collects the launch fee, enforces the fee recipient.
ChainRobinhood ChainAn Ethereum layer 2 for real-world assets. Settles every transaction.
Institutional accessZerohashConnects banks and brokerages to Robinhood Chain. Not part of a GO FUND launch — see below.

A launch is a single transaction:

  1. You fill in the name, ticker and fundraiser link.
  2. The page reads the current launch terms from the factory and pins them into the call.
  3. It simulates the transaction against a node. If it would revert, you never sign.
  4. Your wallet signs. The factory deploys the token and its curve.
  5. From that point, every trade pays a creator fee to the treasury address.

The network

Robinhood Chain is an Ethereum layer 2 built for real-world assets — tokenised equities alongside ordinary tokens. GO FUND runs on its mainnet.

Chain ID4663
RPChttps://rpc.mainnet.chain.robinhood.com
CurrencyETH, 18 decimals
Explorerrobinhoodchain.blockscout.com

The launchpad adds the network to your wallet for you if it is missing, and switches to it before building the transaction.

Where Zerohash fits

Zerohash is a regulated crypto infrastructure provider. It gives banks, brokerages and payment companies a single integration into several chains, and handles liquidity, compliance, custody and settlement on their behalf. Since July 2026 its clients can reach Robinhood Chain through it.

To be precise about this. Zerohash is part of the ecosystem around Robinhood Chain, not a component of GO FUND. A launch made here never passes through Zerohash: it is a direct contract call signed by your own wallet. GO FUND has no custody relationship with anyone.

Contracts and addresses

Pons v2 factory0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e
GO FUND treasury0x2ae44108c6d48361bb39d4d36b2106df32d2075f
Pair token0x0000…0000 — the zero address means the token trades against native ETH
Launch config0 — the factory reports exactly one config, so this is the only valid id

The treasury is an externally owned account. It is not a contract, so there is no upgrade path and no admin function behind it.

Launch economics

These values are read live from the factory each time the launch page loads.

SettingValueWho sets it
Launch fee0.0005 ETHPons. Paid as the transaction value.
Supply1,000,000,000 at 18 decimalsFixed by the launch config. It is not a field you fill in.
Creator tax0%10%You, at launch. Paid by traders on each trade.
Fee destinationThe GO FUND treasuryGO FUND. Not editable.
Graduation threshold4.2 ETH for ETH-paired launchesPons. The point at which the curve completes.
Developer buyOptionalYou. Buys your own token in the same transaction.

Pons also applies a decaying anti-snipe tax to buys in the first seconds after a launch. The account that launched the token is exempt from it.

The launch call

With no developer buy the page calls launchToken(params, 0, 0x0). With one it calls launchAndBuy(...) and sends the launch fee plus the buy amount as value. What goes into params:

FieldSource
name, symbolYour input. The ticker is stripped to letters and digits, uppercased, capped at 11 characters.
description, logoYour input. Both optional.
socials.websiteThe fundraiser link.
socials.twitterYour input. Optional.
creatorFeeRecipientHard-coded to the treasury. There is no form field for it.
creatorTaxBpsThe slider, in basis points. Capped by the factory's own maxCreatorTaxBps().
buybackEnabledfalse.
expectedEconomicsRead from previewLaunchEconomics immediately before signing. If Pons changed the terms in between, the transaction reverts rather than launching on different ones.
salt32 random bytes, generated per launch.

How the fee lock works

The claim that a creator cannot take the fees back is worth more than a promise, so it was checked against the deployed contracts rather than the documentation.

  1. The fee recipient lives on the token's bonding curve, which exposes setCreatorFeeRecipient(address) — selector 0x7b04ea62.
  2. Simulating that call on a live curve from the token's own deployer reverts. So does calling it from an unrelated address, and from the current recipient. The curve accepts only the factory.
  3. The factory exposes a pass-through, setCreatorFeeRecipient(address,address) — selector 0xe102c9aa. Simulating that as the token's creator also reverts, and so does simulating it as the current recipient.

What this means. Once a fund is live, the person who launched it cannot redirect its creator fees. The residual trust is in Pons: the factory retains an administrative path that neither the creator nor the recipient can reach. GO FUND cannot remove that, and does not claim to.

A second, narrower limit: this holds for tokens launched through this site. Anyone can call the Pons factory directly and name their own wallet. Making that impossible for everyone would require GO FUND to deploy its own factory wrapper.

Wallets and signing

Connection is handled by Privy, restricted to browser wallets — MetaMask or Rabby. There is no email login and no embedded wallet, because a launch needs a wallet that already holds ETH on Robinhood Chain.

Signing is strictly non-custodial. GO FUND is a static site: it holds no keys, runs no signing server, and has no way to move a token or a fee after launch. The only secret involved is your own, and it never leaves your wallet.

How Explore is built

The Explore page has no database behind it. In your browser it reads TokenLaunched logs from the factory, fetches each launch transaction, decodes its input, and keeps only those whose creatorFeeRecipient is the treasury. What you see is derived from chain data every time the page loads.

It scans recent blocks in windows and caps how many transactions it decodes, so a very old fund may not appear. An empty list means no token has yet been launched with the treasury as its fee recipient — not that the page failed.

Verify a fund yourself

  1. Open the token on the explorer and find the transaction that created it.
  2. Decode that transaction's input against the factory ABI below.
  3. Read params.creatorFeeRecipient. For a real GO FUND launch it equals the treasury address.
  4. Read params.creatorTaxBps for the trading fee, and params.socials.website for the fundraiser the creator declared.

The fundraiser link is supplied by whoever launched the token. GO FUND does not verify that a fundraiser is genuine, that its owner knows about the token, or that they endorse it.

Errors you may hit

What you seeWhat it means
Signature rejectedYou dismissed the wallet prompt. Nothing was sent.
Insufficient fundsThe wallet needs the launch fee plus gas, in ETH, on chain 4663.
A revert during simulationThe call was rejected before signing. Most often the launch terms moved between reading them and submitting; reloading and retrying re-pins them.
Wrong networkThe page asks your wallet to switch, and to add chain 4663 if it does not know it. Both prompts need your approval.
Could not reach Robinhood ChainThe public RPC did not answer. Nothing was signed; retry.

Limits and risk

ABI reference

struct Socials {
  string twitter; string telegram; string discord;
  string website; string farcaster;
}

struct TokenParams {
  string name; string symbol; string logo; string description;
  Socials socials;
  address creatorFeeRecipient;
  uint16  creatorTaxBps;
  bool    buybackEnabled;
  bytes32 expectedEconomics;
  bytes32 salt;
}

function launchToken(TokenParams params, uint256 launchConfigId, address pairToken)
  payable returns (address token, address curve);

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

function launchFee() view returns (uint256);
function maxCreatorTaxBps() view returns (uint16);
function previewLaunchEconomics(uint256 configId, address pairToken) view returns (bytes32);

event TokenLaunched(address indexed token, address indexed curve, address indexed deployer,
                    address pairToken, uint256 launchConfigId, uint256 graduationThreshold);

Token purchases are not donations and do not represent ownership in, or a claim against, any fundraiser or beneficiary.

Launch a funded token