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 approvetokenIn 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:
401 UNAUTHORIZED.
Integration Overview
Getting a Quote
Choose one of two methods: Method 1 — On-chain via EIP-712 signature- Generate
timestampInMilisec(current time in ms). Must be within 10 seconds of the current block. - Sign the EIP-712 typed data with your whitelisted key (see EIP-712 Signature below).
- Call
quote(tokenIn, amountIn, tokenOut, timestampInMilisec, signature)on the Router. - Receive
amountOut— your expected output amount.
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 CallPOST /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
swap()
Option A — build the call yourself:
calldata returned by the API (requires amountIn in Step 1):
EIP-712 Signature
To callquote() on-chain, you must sign the following struct with a whitelisted key:
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
Thefee 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).