Fee tiers
0.01% spacing 10.02% spacing 10.03% spacing 10.04% spacing 10.05% spacing 10.1% spacing 100.15% spacing 100.16% spacing 100.18% spacing 100.2% spacing 100.25% spacing 600.4% spacing 600.6% spacing 600.8% spacing 601% spacing 1202% spacing 1203% spacing 1204% spacing 1200.01% spacing 10.02% spacing 10.03% spacing 10.04% spacing 10.05% spacing 10.1% spacing 100.15% spacing 100.16% spacing 100.18% spacing 100.2% spacing 100.25% spacing 600.4% spacing 600.6% spacing 600.8% spacing 601% spacing 1202% spacing 1203% spacing 1204% spacing 120
Developer HubOpen the lab

SDK and MCP

Paint by API: the same batch the canvas builds, from a script or an agent.

HTTP

POST /api/quote returns the snapped ticks and the rent of a list of bands. POST /api/paint returns the batch, base64 transactions with the position NFT keys already signed, ready for the owner's wallet.

curl -X POST $SITE/api/paint -H 'content-type: application/json' -d '{
  "owner": "<wallet>",
  "base": "So11111111111111111111111111111111111111112",
  "quote": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
  "configId": "3h2e43PunVA5K34vwKCLHWhZF4aZpyaC9RmxvshGAQpL",
  "bands": [{ "id": "a", "lo": 70, "hi": 80, "value": 50 }]
}'

bandsToPositions

A single TypeScript file, /sdk/feepad.ts, wraps the endpoint. Copy it into a project; it needs @solana/web3.js and nothing else.

import { bandsToPositions } from "./feepad";

const batch = await bandsToPositions({
  site: "https://<feepad site>",
  owner: wallet.publicKey.toBase58(),
  base: SOL, quote: USDC, tier: "0.04%",
  bands: [{ lo: 70, hi: 80, value: 50 }, { lo: 80, hi: 83, value: 30 }],
});
const signed = await wallet.signAllTransactions(batch.transactions);

MCP server

The site serves an MCP endpoint over HTTP at /api/mcp (JSON-RPC 2.0). Tools:

ToolDoes
list_tiersThe 18 CLMM fee tiers with tick spacing
pool_viewPool id, existence and live price for a pair and tier
quote_bandsSnapped ticks and rent for a list of bands
paint_positionsThe signed-ready batch for a list of bands
list_coinsFeepad coins and their curve progress
ledgerClaims, shapes and burns with signatures
{ "mcpServers": { "feepad": { "type": "http", "url": "https://<feepad site>/api/mcp" } } }