const res = await fetch("/api/v1/swap/build", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({
tokenIn,
tokenOut,
fee,
amountIn, // base units
amountOutMinimum,
recipient,
}),
});
// unsigned SkewRouter calldata — you signRobinhood Chain · agents
Swap rails for agents.
POST /api/v1/swap/build returns unsigned calldata. Agents sign with their own keys. Public reads cover epochs, holder payouts, and partner receipts. No accounts. No custody.
Signing
YoursWe never hold agent keys. Build returns calldata only.
Router
LiveSkewRouter is collecting the cut.
Spec
v1Versioned under /api/v1. OpenAPI is generated from the same routes.
GET /api/v1/epochs
GET /api/v1/epochs/{id}
GET /api/v1/epochs/{id}/payouts
GET /api/v1/holders/{address}/payouts
GET /api/v1/payouts/board
GET /api/v1/payouts/standings
GET /api/v1/partners
GET /api/v1/partners/{id}
GET /api/v1/skills
GET /api/v1/openapiPOST
/v1/swap/buildGET
/v1/epochsGET
/v1/partners