06Developers
Build on Pons,
Interfaces
base ·
self-host · http://localhost:4663/api/v1
auth · none during beta
Any MCP client · stdio · build first: npm run build:mcp
{
"mcpServers": {
"openpons": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/openpons/packages/mcp/dist/index.js"],
"env": {
"OPENPONS_API_URL": "https://openpons.xyz/api/v1"
}
}
}
}02
Reference →REST API
GET
/healthRPC reachability, chainId, head blockLIVEGET
/contractsVerified Pons contracts, event topics, index statusLIVEGET
/tokens?sort=new|active|graduated&q=&limit=&cursor=List / search Pons tokensGET
/tokens/:addressToken detail: curve, price & mcap in ETH, socials, creator taxGET
/tokens/:address/trades?limit=Recent CurveBuy / CurveSell eventsGET
/quote?token=&side=buy|sell&amount=&slippageBps=&recipient=On-chain curve quote with min-outGET
/launch/configLive launch fee, limits, curve economicsGET
/wallet/:addressETH balance, nonce, contract flagLIVEGET
/wallet/:address/balance?token=ETH + one Pons token balanceLIVEGET
/wallet/:address/portfolio?depth=Pons holdings valued in ETHGET
/wallet/:address/launchesTokens launched by address + pending feesGET
/wallet/:address/feesClaimable creator fees (escrow)GET
/transactions/:hashpending / success / reverted / not_foundLIVEPOST
/prepare/buy{ token, amount, from, slippageBps? } → unsigned txPOST
/prepare/sell{ token, amount, from, slippageBps? } → approve(exact)? + sellPOST
/prepare/launch{ from, name, symbol, logo, … } → launchToken / launchAndBuyPOST
/prepare/claim{ from } → escrow claim()POST
/prepare/sweep{ token, from } → curve sweepFees(0)envelope
{ "ok": true, "data": { … }, "meta": { "chainId": 4663, "version": "v1" } }
{ "ok": false, "error": { "code": "NOT_A_PONS_TOKEN", "message": "…" } }PreparedTransaction
{
"chainId": 4663,
"from": "0xYourWallet",
"to": "0x…", // verified Pons contract
"data": "0x59a87bc1…",
"value": "20000000000000000",
"gas": "123885",
"function": "buy(uint256 quoteIn, uint256 minTokensOut, address recipient) payable",
"simulation": { "ok": true, "error": null },
"quote": { "expectedOut": "…", "minOut": "…", "slippageBps": 100 },
"expiresAt": "2026-…", // 30s
"requires": [] // e.g. approve(curve, exact) before a sell
}Hosted API keys — designed, not active. Scopes will be read / prepare only; there will never be a signing scope.PREVIEW
03
TypeScript SDK
Zero dependencies. Workspace package at packages/sdk (not on npm yet). Signing stays with you.
openpons.tokens.search({ sort, q, limit })list / searchopenpons.tokens.get(address)token detailopenpons.tokens.trades(address)curve tradesopenpons.quote({ token, side, amount })on-chain quoteopenpons.wallet.get(address)ETH, nonceopenpons.portfolio.get(address)holdings in ETHopenpons.launches.byCreator(address)launches + feesopenpons.fees.get(address)claimableopenpons.trade.prepareBuy({ … })unsigned buyopenpons.trade.prepareSell({ … })approve? + sellopenpons.launch.prepare({ … })unsigned launchopenpons.fees.prepareClaim({ from })unsigned claimopenpons.toEip1193Params(tx)guards → wallet params04
Setup →MCP
openpons_search_tokensopenpons_get_tokenopenpons_get_tradesopenpons_get_quoteopenpons_get_walletopenpons_get_portfolioopenpons_get_launchesopenpons_get_creator_feesopenpons_get_transactionopenpons_prepare_buyopenpons_prepare_sellopenpons_prepare_launchopenpons_prepare_claimopenpons_prepare_sweep05
Research →Chain & contracts
network
chainId
gas
rpc
explorer
block time
getLogs cap
Pons V2 Launch FactorySourcify exact match · selectors in bytecode
0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7ePons V2 Launch & Buy routerSourcify exact match · selectors in bytecode
0xe33E9E479dF8802cb0866d5d05258bEc4cF62948Pons V2 Fee EscrowSourcify match · claim simulated
0xd3AFEB2a57f70eF218Aa82451c51B2fb0416Ac9ePons V2 Launch DeployerSourcify exact match
0x3711ceA4feaDE896C913C68F01Eda97Cb06D1A42Pons V2 Meme HookSourcify match
0xE5e702641Ea86F4ae6cC3cDaeD2B886f976Be044Multicall3Code present
0xcA11bde05977b3631167028862bE2a173976CA11TokenLaunched0x8d4aad4953d0ca70…
LaunchSwept0xcdb72f157fd36667…
PoolGraduated0x0a44ef75df69c534…
CurveBuy0xec36bf571f136799…
CurveSell0x8113d738abdcb6b3…
Transfer0xddf252ad1be2c89b…
Claimed0xd8138f8a3f377c52…
06
120 req/min/IPErrors & limits
BAD_REQUEST400Missing/invalid parameter or JSON body
INVALID_ADDRESS400Not a 0x-prefixed 20-byte address
INVALID_AMOUNT400Not a positive decimal ≤18 dp, or exceeds balance
NOT_A_PONS_TOKEN404Address is not registered in the Pons V2 factory
UNSUPPORTED501Graduated curve, ERC-20 pair, or contracts changed since verification
RATE_LIMITED429More than 120 requests/minute from one IP
UPSTREAM_ERROR502Robinhood Chain RPC failed after retries
07
Model →Security
- 01Non-custodial
No keys, seeds or signers anywhere.
- 02Validated
4663, verified target, registered token.
- 03Simulated
eth_call from the user before signing.
- 04Exact approvals
approve(curve, exact) — never unlimited.
- 05Re-checked
Chain + account re-read right before signing.
- 06Verified
Receipt tracked on our RPC; status checked.
08
Feature status
EIP-6963 wallet discoveryLIVEAny compatible injected EVM wallet + legacy window.ethereum fallback
Robinhood Chain network handlingLIVEDetect, switch, add network; chainId re-checked before every signature
Token reads & discoveryFrom on-chain Pons events and view functions
QuotesComputed on-chain at a specific block
Buy / sellPrepared + simulated, signed in your wallet
LaunchLogo must be an existing ipfs:// or https:// URI
Creator fees: detect, sweep, claimEscrow balanceOf + claim(); curve sweepFees() — simulated before every signature
Trading graduated tokens (Uniswap V4)COMING SOONV4 router path not yet verified; curve trading only
ERC-20-quoted curvesUNAVAILABLEOnly ETH-quoted Pons curves are supported
Holder countsUNAVAILABLEBlockscout API behind a bot challenge; not estimated
USD valuesUNAVAILABLENo verifiable on-chain USD oracle is used; values are shown in ETH
REST APIhttps://openpons.xyz/api/v1 — public, no key during beta
TypeScript SDKpackages/sdk — defaults to the public API; not yet on npm
MCP serverpackages/mcp — local stdio, talks to the public API; not yet on npm
Hosted MCP endpointCOMING SOONRemote HTTP transport (no local install)
Logo upload / IPFS pinningCOMING SOONRequires server-side pinning credentials