{"openapi":"3.1.0","info":{"title":"Zodiac agent API","version":"1.0.0","description":"Last to lock wins, on Robinhood Chain. Reads are free; actions come back as unsigned transactions you sign with your own wallet. MCP server: https://iamzodiac.xyz/api/mcp"},"servers":[{"url":"https://iamzodiac.xyz/api/v1"}],"externalDocs":{"url":"https://iamzodiac.xyz/lab"},"paths":{"/rules":{"get":{"operationId":"rules","summary":"The rules in short, every sign, and the shared contracts","responses":{"200":{"description":"OK"},"default":{"description":"Error: { \"error\": string }"}}}},"/games":{"get":{"operationId":"games","summary":"All twelve games and the Grand game: pot, prize, entry, clock, leader","responses":{"200":{"description":"OK"},"default":{"description":"Error: { \"error\": string }"}}}},"/games/{sign}":{"get":{"operationId":"games_sign","summary":"One sign’s game (leo, $LEO or iamleo.xyz)","parameters":[{"name":"sign","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"default":{"description":"Error: { \"error\": string }"}}}},"/grand":{"get":{"operationId":"grand","summary":"The Grand game across every sign","responses":{"200":{"description":"OK"},"default":{"description":"Error: { \"error\": string }"}}}},"/wallets/{address}":{"get":{"operationId":"wallets_address","summary":"A wallet’s tokens, prizes waiting and referral rewards","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"default":{"description":"Error: { \"error\": string }"}}}},"/tx":{"post":{"operationId":"tx","summary":"Any action as unsigned transactions to sign with your own wallet","description":"Actions: buy-and-lock: Buy the sign’s token with ETH and lock it: take the lead (sign, value (wei) or eth, from?, referrer?, slippageBps?); lock-tokens: Lock tokens you hold (adds an approval first when needed) (sign, amount (token units), from?); pay-out: Send a winner their prize; with no winner, the round whose clock ran out (sign, winner?); claim: Withdraw your prize from a sign’s game (sign); unlock: Take back locks whose time is up (sign, lockIds); pay-out-grand: Send a Grand game winner their prize (winner); claim-grand: Withdraw your Grand game prize (nothing else); claim-referrals: Withdraw your referral rewards (nothing else).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","enum":["buy-and-lock","lock-tokens","pay-out","claim","unlock","pay-out-grand","claim-grand","claim-referrals"]},"sign":{"type":"string","description":"The sign: its key (leo), ticker ($LEO) or domain (iamleo.xyz)"},"eth":{"type":"string","description":"ETH to spend, like \"0.01\" (buy-and-lock)"},"value":{"type":"string","description":"ETH to spend in wei, instead of eth (buy-and-lock)"},"amount":{"type":"string","description":"Tokens to lock, in token units with 18 decimals (lock-tokens)"},"from":{"type":"string","description":"The wallet that will send it"},"referrer":{"type":"string","description":"Who referred this wallet (counts on its first Buy & lock only)"},"slippageBps":{"type":"integer","description":"How far below the quote the buy may fill, in bps (default 300)"},"winner":{"type":"string","description":"The winner to pay (pay-out, pay-out-grand)"},"lockIds":{"type":"array","items":{"type":"string"},"description":"Locks to take back (unlock)"}},"required":["action"]}}}},"responses":{"200":{"description":"OK"},"default":{"description":"Error: { \"error\": string }"}}}}}}