Epsilon / Developers

Build on Epsilon

Epsilon is a trading platform on Robinhood Chain with advanced order types (limit, stop loss, DCA, trailing stop) for memecoins and RWAs. The developer platform gives you a keyed REST API — quotes, smart order routing, order placement, and market data — plus MCP servers so AI agents in Cursor, Claude, and any MCP client can trade programmatically.

Quickstart

1 — Get an API key. Keys are issued per Epsilon account. During early access, keys are concierge-issued — ask in the community or DM @TradeEpsilon. (Self-serve issuance with your Privy login lands with the developer dashboard.) Keys look like eps_… and are shown once at creation.

2 — First call: quote a swap. Amounts are raw token units (scaled by the token's decimals):

curl "https://api.epsilon.exchange/v1/route?tokenIn=0x…&tokenOut=0x…&amountIn=1500000000000000000&slippagePpm=10000" \
  -H "X-API-Key: eps_YOUR_KEY"

The response contains the best route, expected and minimum output, price impact in ppm, and the feeLegs that a signed order must embed.

3 — Explore the surface. Everything lives under /v1 and is documented in the interactive API reference:

EndpointWhat it does
GET/v1/quotevenue-by-venue quotes for a pair
GET/v1/routebest executable route + feeLegs
GET/v1/order-preflightwill an order for this pair/size be executable?
POST/v1/orderssubmit an EIP-712-signed order
GET/v1/orders/{hash}order status (+ /fills)
DEL/v1/orders/{hash}cancel a pending order (maker-signed)
GET/v1/orderbook/{pair}open orders for a token pair
GET/v1/swaps · /v1/volume · /v1/statsmarket data
GET/v1/errors · /v1/config · /v1/openapi.jsonerror catalog, chain config, spec (no key needed)
Building an AI agent? Skip raw HTTP — connect to the hosted MCP server or run the local trading package. See the MCP connection guide.

Authentication

Every keyed endpoint accepts the key in either header form:

X-API-Key: eps_YOUR_KEY
# or
Authorization: Bearer eps_YOUR_KEY

Keys are secrets: server-side only, never in browser code or repos. A leaked key can be disabled instantly and reissued — rotation is free.

Rate limits

Limits are per key (not per IP) over a sliding minute, in three buckets:

BucketEndpointsFree tier
Quote/v1/quote, /v1/route, /v1/order-preflight120 / min
Readorders, orderbook, swaps, volume, stats600 / min
OrderPOST /v1/orders, cancel30 / min

Every response carries X-RateLimit-Limit and X-RateLimit-Remaining; a 429 includes Retry-After. Order submission additionally has per-maker-wallet limits.

Amounts & prices

Signed orders

Epsilon is non-custodial: an order is an EIP-712 message signed by the maker's wallet (domain EpsilonRouter v7, chain 4663), executed on-chain by keepers when the trigger condition is met. Funds stay in the maker's wallet until fill. The API key on POST /v1/orders is attribution and rate limiting — authorization is the signature itself.

Two integration paths:

Cancelling a pending order is also signed: EIP-712 OrderCancel(bytes32 orderHash) by the maker, sent with DELETE /v1/orders/{hash}.

Errors

Errors are JSON with a stable machine-readable code:

{ "error": "human-readable message", "code": "MACHINE_CODE" }
CodeMeaning
RATE_LIMITEDper-key limit hit — honor Retry-After
MAKER_RATE_LIMITEDtoo many orders from one maker wallet
BAD_SIGNATUREsignature doesn't recover to the maker
FEE_PARAMS_MISMATCHorder fee fields don't match the served feeLegs
INVALID_TRAITSmakerTraits flags invalid for the order type
ALREADY_EXISTSorder hash already indexed
UNSUPPORTED_PAIR / NO_ORACLEpair can't be safely executed as a triggered order
NO_ROUTE / NO_POOLno executable liquidity right now

The complete, always-current catalog with retry guidance is served live at GET /v1/errors (no key required).