Submit gasless on-chain transactions using EIP-2612 permit signatures. The relayer pays gas on your behalf.
Approve the settlement contract to transfer your CTF (Conditional Token) positions gaslessly.
POST /api/v1/relayer/ctf-approval
{
"chainId": 137,
"owner": "0xYourAddress...",
"operator": "0xSettlementContract...",
"approved": true,
"deadline": "1735689600",
"v": 27,
"r": "0x...",
"s": "0x..."
}
Settlement contract to approve
true to approve, false to revoke
Permit expiration (Unix timestamp as string)
Signature component (32 bytes hex)
Signature component (32 bytes hex)
Approve USDC spending gaslessly using an EIP-2612 permit. Use this for a one-time max approval so future orders don't need per-order permits.
POST /api/v1/relayer/usdc-permit
Contract to approve for spending
Amount to approve (as string). Use uint256.max for unlimited
Permit expiration (Unix timestamp as string)
Signature component (32 bytes hex)
Signature component (32 bytes hex)
Redeem CTF outcome tokens for USDC after a market resolves. The relayer submits the redeemPositionsWithPermit transaction on your behalf.
POST /api/v1/relayer/ctf-redemption
Parent collection (use zero bytes for top-level)
Gnosis CTF condition identifier
Outcome index sets to redeem (e.g., ["1", "2"])
Permit expiration (Unix timestamp as string)
Signature component (32 bytes hex)
Signature component (32 bytes hex)
Market contract address (optional, for PNL tracking)
Batch CTF Redemption
Redeem positions across multiple markets in a single transaction using Multicall3. More gas-efficient than individual redemptions.
POST /api/v1/relayer/batch-ctf-redemption
Array of individual redemption data (see CTF Redemption fields above, plus marketAddress required)
Whether the transaction was submitted
Propose Resolution
Submit a resolution proposal for an expired market. The proposer asserts an outcome via the UMA Optimistic Oracle with a bond.
POST /api/v1/relayer/propose-resolution
Proposed outcome: true = YES, false = NO
Permit expiration (Unix timestamp as string)
Signature component (32 bytes hex)
Signature component (32 bytes hex)
Bond USDC permit deadline (optional, omit for testnet)
Bond permit signature component (optional)
Bond permit signature component (optional)
Bond permit signature component (optional)
The bond permit fields are required on mainnet where the proposer must post a UMA bond in USDC. On testnet, these can be omitted.
Settle a market after the UMA oracle dispute window has passed (2 hours). Finalizes the winning outcome and enables redemptions.
POST /api/v1/relayer/settle-market
Permit expiration (Unix timestamp as string)
Signature component (32 bytes hex)
Signature component (32 bytes hex)
Get Pending Claims
Returns CTF redemptions waiting for on-chain confirmation.
GET /api/v1/pending-claims
Redemption transaction hash
Expected payout in USDC (6 decimals). 50000000 = $50
Unix timestamp when redemption was submitted
Get Failed Claims
Returns CTF redemptions that failed on-chain.
GET /api/v1/failed-claims
The response fields are the same as pending claims.
Error Responses
All relayer endpoints return the same error format:
Common errors
r and s must be 66 characters (0x + 64 hex)
No relayer configured for chain
Chain ID is not supported