At a glance
Every cancel signs on Polygon (
0x89), whatever the venue. See what the wallet signs.
Polymarket
- Setup: connect to Polymarket (a
ClobAuthsignature), then approve the trading wallet (aBatchsignature) if it isn’t approved yet. No gas. - Funding: send pUSD on Polygon to
venues.polymarket.tradingWallet. - Delayed markets: some markets hold taking orders for a short delay before matching: sports markets during games (usually 1–3 s), others 250 ms. The action stays
workingwithholdUntilMs, then endsdonewith the final fill. Market data shows the delay asmatch_delay_ms. See delayed markets. - Selling right after buying: bought shares settle on-chain a few seconds after the fill. Selling them sooner can fail with
VENUE_REJECTED(not enough balance): retry after a few seconds. - Fees: Polymarket charges its taker fee on top, in pUSD, so it never reduces
filledSize. - Split, merge and redeem: see on-chain intents (preview).
Predict.fun
- Setup: one
wallet_sendCallswith the missing approvals (the user pays BNB gas once, about 70,000 gas each), then apersonal_signof Predict.fun’s own login message. With too little BNB, setup asks for nothing and reportsnext: "fund"withvenueDetail.reasonandvenueDetail.gasWei. - Funding: send USDT on BNB Chain to the wallet itself, plus a little BNB for the approvals.
- Sessions: the Predict.fun sign-in lasts about a day. An order asks for it again when less than an hour is left. Status shows it as
venueDetail.sessionExpiresAt. - Resting orders end with the session. A
GTCorder is placed asGTDending 10 minutes before the session expires. AGTDorder’sexpiresAtis capped the same way. Place a new order after the next sign-in. - Fills: Predict.fun reports no fills when an order is posted, so order results come back with
final: false. Follow fills in orders. - Fees: the market’s venue fee rate (
feeRateBps) is part of the order the wallet signs.
Hyperliquid
Hyperliquid outcome markets (HIP-4).- Setup: one
ApproveAgentsignature, plusApproveBuilderFeewhere a builder fee is configured. No gas. The agent can place and cancel orders only: it can’t withdraw or transfer, and the user can revoke it on Hyperliquid at any time. - Funding: deposit USDC to the wallet’s Hyperliquid account. Hyperliquid refuses every action from an account that has never been funded, the agent approval included, so fund first, then set up.
- Perps balance: when spot USDC is short and the wallet’s perps account can cover the gap, the order asks for one extra signature that moves exactly the shortfall from perps to spot. Status shows how much can move as
venueDetail.transferFromPerps.available. - Cost check: a buy needs
price × size × (1 + taker fee + builder fee), rounded up to the cent, in spot USDC. - Order status: a just-placed order can come back as
executing, then showlivein orders once Hyperliquid confirms it. - Blocked accounts: some Hyperliquid account modes, such as portfolio margin, can’t be used here. Status shows
next: "blocked"withvenueDetail.reason. - Agent removed: if Hyperliquid prunes the agent, status shows
venueDetail.code: "HYPERLIQUID_AGENT_MISSING", and the next order re-approves it inline.
Availability
Each venue can be switched off on its own, without a deploy:- Not offered here. An order or a
setupthat names the venue answers503 <venue> is not available right now. Setup withoutvenuesand status leave it out ofvenues. - Switched off by Kairos. Setup answers
403 API-key access to <venue> is disabled. An order fails with the same error, at the latest when its signature is submitted, so nothing is placed. - Briefly unreachable. Status shows the venue with
available: falseand anerror, and leaves it out ofreadyandnext.

