Skip to main content
This walks through one cNGN → USDC swap against the hosted relay. You need a wallet holding testnet cNGN on Base Sepolia that has approved Permit2 once, and a way to sign EIP-712 typed data and EIP-191 messages (viem, ethers, or a browser wallet).
1

Read the configuration

Note the token addresses and requireTakerProof. The hosted relay sets it to true.
2

Sign a taker proof

Sign the text panofx-taker|84532|<your address>|<issuedAt> with EIP-191 (personal_sign), where issuedAt is the current unix time in seconds. It is valid for 24 hours. See Taker proof.
3

Ask for a quote

status is quoted with the terms, or no_quote with a reason. The quote is open for 20 seconds.
4

Sign the typed data

quote.json carries typedData: a Permit2 PermitWitnessTransferFrom with a TakerAuth witness, ready for eth_signTypedData_v4. With viem:
Selling USDC? Sign an EIP-2612 permit for Permit2 too, and send it as erc2612. Selling cNGN needs the one-time on-chain approval instead.
5

Submit

202 with status: "submitted" and a txHash means the keeper broadcast it. 200 with status: "requote" means the simulation failed and nothing moved; ask for a new quote.
6

Follow it

status goes quoted → signed → submitted → settled, and final turns true once the indexer has confirmed the fill.
The receipt is at https://web-production-a2664.up.railway.app/receipt/<quoteId>.
For Solana devnet the shape differs in a few places: see Solana.