Skip to main content

What is Kipseli PropAMM?

Kipseli PropAMM is a professional Automated Market Maker deployed on Base, BNB Chain and Robinhood Chain that enables token swaps with competitive, on-chain pricing. Integrators can get quotes and execute swaps by combining on-chain contract calls with a lightweight signing API.

Contract Addresses

The Router (PropAmm) is the contract you approve tokenIn on and call swap() / quote() against. The Helper (QuoteLens) is a read-only view contract for listed tokens and reserves.
The EIP-712 Verifier is deployed at the same address on every chain — 0xCa369e97cc161c3c3a7368f9bC55A47F36a0A91E. Only the chainId in the EIP-712 domain changes per chain. See EIP-712 Signature.

Contract Interfaces

Router (IPropAmm)

Helper (IQuoteLens)


Whitelist Requirement

Both on-chain quoting (EIP-712 signature) and the swap signing API require your address to be whitelisted. Contact the Kipseli team and provide your signing address to get access.

API Authentication

All HTTP API endpoints (/v2/*) require an API key. Pass it on every request via the X-API-KEY header:
Contact the Kipseli team to obtain your API key. Requests with a missing or invalid key return 401 UNAUTHORIZED.

Integration Overview

Getting a Quote

Choose one of two methods: Method 1 — On-chain via EIP-712 signature
  1. Generate timestampInMilisec (current time in ms). Must be within 10 seconds of the current block.
  2. Sign the EIP-712 typed data with your whitelisted key (see EIP-712 Signature below).
  3. Call quote(tokenIn, amountIn, tokenOut, timestampInMilisec, signature) on the Router.
  4. Receive amountOut — your expected output amount.
Method 2 — Off-chain via API Call GET /v2/price?chainId=<chainId> to get the live on-chain orderbook for all configured pairs on that chain. If chainId is omitted, it falls back to Base (8453). See Get Orderbook.

Executing a Swap

Step 1 — Get verification data Call POST /v2/swap/sign with your swap parameters, including chainId for the chain you are trading on (omitted falls back to Base 8453). The API returns verificationData and timestamp. Optionally pass amountIn (and minAmountOut) to also receive pre-built calldata. See Request Swap Verification. Step 2 — Approve the Router
Step 3 — Call swap() Option A — build the call yourself:
Option B — use the calldata returned by the API (requires amountIn in Step 1):

EIP-712 Signature

To call quote() on-chain, you must sign the following struct with a whitelisted key:
Domain:
verifyingContract is the same on every chain — set chainId to the chain you are trading on (56 BNB Chain, 8453 Base, 4663 Robinhood Chain). Example (ethers.js):

Fee Structure

The fee field in swap requests uses 0.1 bps resolution:
  • Fee is deducted from the output amount (amountOut).
  • Fees are settled monthly in a mutually agreed currency (e.g. USDC, ETH).

Error Format

All API errors follow a consistent envelope: