Quickstart
Production: https://openpons.xyz. To run your own copy: Node 20+ (tested on Node 24), npm.
cd ~/openpons
npm install
npm run dev # http://localhost:4663
Port 4663 matches the Robinhood Chain chainId, which makes it easy to remember.
1 · Use the app
/discover: browse new, active and graduated Pons tokens./trade/<CA>: quote, then buy or sell with your own wallet./launch: launch a Pons token. You need a pinnedipfs://orhttps://logo URI./portfolio: holdings, your launches, and creator fees with claim.
2 · Call the API
Public API: https://openpons.xyz/api/v1 (swap in http://localhost:4663/api/v1 when self-hosting).
curl "https://openpons.xyz/api/v1/health"
curl "https://openpons.xyz/api/v1/tokens?sort=new&limit=5"
curl "https://openpons.xyz/api/v1/quote?token=0xTOKEN&side=buy&amount=0.01"
curl -X POST https://openpons.xyz/api/v1/prepare/buy \
-H "Content-Type: application/json" \
-d '{"token":"0xTOKEN","amount":"0.01","from":"0xYOUR_WALLET"}'
prepare/* returns an unsigned transaction. Nothing is broadcast.
3 · Connect an agent (MCP)
npm run build:mcp
claude mcp add openpons --env OPENPONS_API_URL=https://openpons.xyz/api/v1 \
-- node ~/openpons/packages/mcp/dist/index.js
For Claude Desktop and Cursor JSON configs, see MCP.md.
4 · Use the SDK
npm run build:sdk
import { OpenPons } from "@openpons/sdk";
const openpons = new OpenPons({ baseUrl: "https://openpons.xyz/api/v1" });
const { tokens } = await openpons.tokens.search({ sort: "active" });
5 · Tests
npm test # unit tests (curve math, parsing, EIP-6963 isolation)
npm run typecheck
npm run build
Optional environment variables are listed in .env.example. None are required, and none are secret.