{"openapi":"3.1.0","info":{"title":"Deserialize ultra-agg","description":"Unified DeFi API — data and actions across swaps, memecoins, perps, NFT, prediction markets, and RWA on Solana + EVM. Action endpoints return an ordered steps[] array (sign-transaction | sign-typed-data | post-to-endpoint) the client executes; this API never submits or relays anything.","version":"0.1.0"},"components":{"schemas":{}},"paths":{"/v1/health":{"get":{"summary":"Service + infrastructure health","tags":["meta"],"responses":{"200":{"description":"Default Response"}}}},"/v1/chains":{"get":{"summary":"Supported chains","tags":["meta"],"responses":{"200":{"description":"Default Response"}}}},"/v1/providers":{"get":{"summary":"Provider availability (key-gated adapters)","tags":["meta"],"responses":{"200":{"description":"Default Response"}}}},"/v1/tokens/{chain}/{address}":{"get":{"summary":"Token metadata (registry-backed, lazily populated)","tags":["tokens"],"parameters":[{"schema":{"type":"string","enum":["solana","ethereum","base","arbitrum","bsc","polygon"]},"in":"path","name":"chain","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"address","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/tokens/{chain}/{address}/price":{"get":{"summary":"Spot price (USD), 10s cache","tags":["tokens"],"parameters":[{"schema":{"type":"string","enum":["solana","ethereum","base","arbitrum","bsc","polygon"]},"in":"path","name":"chain","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"address","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/swaps/quote":{"post":{"summary":"Meta-aggregated swap quote (all providers, best first)","tags":["swaps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"partnerFeeBps":{"type":"integer","minimum":0,"maximum":1000},"partnerFeeRecipient":{"type":"string"},"chain":{"type":"string","enum":["solana","ethereum","base","arbitrum","bsc","polygon"]},"inputToken":{"type":"string","minLength":1},"outputToken":{"type":"string","minLength":1},"amountIn":{"type":"string","pattern":"^\\d+$"},"slippageBps":{"default":50,"type":"integer","minimum":1,"maximum":5000}},"required":["chain","inputToken","outputToken","amountIn"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/swaps/build":{"post":{"summary":"Build swap transaction steps via the best (or pinned) provider","tags":["swaps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"partnerFeeBps":{"type":"integer","minimum":0,"maximum":1000},"partnerFeeRecipient":{"type":"string"},"chain":{"type":"string","enum":["solana","ethereum","base","arbitrum","bsc","polygon"]},"inputToken":{"type":"string","minLength":1},"outputToken":{"type":"string","minLength":1},"amountIn":{"type":"string","pattern":"^\\d+$"},"slippageBps":{"default":50,"type":"integer","minimum":1,"maximum":5000},"taker":{"type":"string","minLength":1},"provider":{"type":"string"},"simulate":{"default":true,"type":"boolean"}},"required":["chain","inputToken","outputToken","amountIn","taker"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/swaps/providers":{"get":{"summary":"Swap providers per chain","tags":["swaps"],"responses":{"200":{"description":"Default Response"}}}},"/v1/memecoins/new":{"get":{"summary":"Newest launches","tags":["memecoins"],"parameters":[{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"default":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false},{"schema":{"default":"pumpfun","type":"string","enum":["pumpfun","fourmeme"]},"in":"query","name":"venue","required":false}],"responses":{"200":{"description":"Default Response"}}}},"/v1/memecoins/trending":{"get":{"summary":"Trending by activity","tags":["memecoins"],"parameters":[{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"default":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false},{"schema":{"default":"pumpfun","type":"string","enum":["pumpfun","fourmeme"]},"in":"query","name":"venue","required":false}],"responses":{"200":{"description":"Default Response"}}}},"/v1/memecoins/graduating":{"get":{"summary":"Bonding curves close to graduation","tags":["memecoins"],"parameters":[{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"default":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false},{"schema":{"default":"pumpfun","type":"string","enum":["pumpfun","fourmeme"]},"in":"query","name":"venue","required":false}],"responses":{"200":{"description":"Default Response"}}}},"/v1/memecoins/tokens/{chain}/{address}":{"get":{"summary":"Single memecoin detail (curve progress, status, mcap)","tags":["memecoins"],"parameters":[{"schema":{"type":"string","enum":["solana","ethereum","base","arbitrum","bsc","polygon"]},"in":"path","name":"chain","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"address","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/perps/venues":{"get":{"summary":"Perps venues + capabilities","tags":["perps"],"responses":{"200":{"description":"Default Response"}}}},"/v1/perps/{venue}/markets":{"get":{"summary":"Markets for a venue","tags":["perps"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"venue","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/perps/{venue}/markets/{marketId}/orderbook":{"get":{"summary":"L2 orderbook snapshot","tags":["perps"],"parameters":[{"schema":{"default":20,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"depth","required":false},{"schema":{"type":"string","minLength":1},"in":"path","name":"venue","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"marketId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/perps/{venue}/markets/{marketId}/funding":{"get":{"summary":"Funding + open interest","tags":["perps"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"venue","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"marketId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/perps/{venue}/positions/{owner}":{"get":{"summary":"Open positions (live, uncached)","tags":["perps"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"venue","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"owner","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/perps/{venue}/orders/{owner}":{"get":{"summary":"Open orders (live, uncached)","tags":["perps"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"venue","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"owner","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/predictions/venues":{"get":{"summary":"Prediction venues with capabilities (data-only venues are tradable:false)","tags":["predictions"],"responses":{"200":{"description":"Default Response"}}}},"/v1/predictions/markets":{"get":{"summary":"Unified market list across all venues (per-venue degradation, never a 500)","tags":["predictions"],"parameters":[{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"default":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false},{"schema":{"type":"string"},"in":"query","name":"query","required":false},{"schema":{"type":"string"},"in":"query","name":"venue","required":false}],"responses":{"200":{"description":"Default Response"}}}},"/v1/predictions/compare":{"get":{"summary":"Same-event markets matched across venues (slug/fuzzy; never auto-merged)","tags":["predictions"],"parameters":[{"schema":{"type":"string","minLength":2},"in":"query","name":"query","required":true},{"schema":{"default":50,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false}],"responses":{"200":{"description":"Default Response"}}}},"/v1/predictions/{venue}/markets":{"get":{"summary":"Prediction markets","tags":["predictions"],"parameters":[{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"default":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false},{"schema":{"type":"string"},"in":"query","name":"query","required":false},{"schema":{"default":true,"type":"boolean"},"in":"query","name":"active","required":false},{"schema":{"type":"string","minLength":1},"in":"path","name":"venue","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/predictions/{venue}/markets/{marketId}/odds":{"get":{"summary":"Current odds per outcome (5s cache)","tags":["predictions"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"venue","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"marketId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/predictions/{venue}/markets/{marketId}/orderbook":{"get":{"summary":"YES-side orderbook (probability prices; outcomeId query selects another outcome)","tags":["predictions"],"parameters":[{"schema":{"default":20,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"depth","required":false},{"schema":{"type":"string"},"in":"query","name":"outcomeId","required":false},{"schema":{"type":"string","minLength":1},"in":"path","name":"venue","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"marketId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/predictions/{venue}/positions/{owner}":{"get":{"summary":"Outcome-share positions (live, uncached)","tags":["predictions"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"venue","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"owner","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/rwa/assets":{"get":{"summary":"Curated RWA registry with live prices (filter by category/chain/tradability)","tags":["rwa"],"parameters":[{"schema":{"type":"string"},"in":"query","name":"category","required":false},{"schema":{"type":"string"},"in":"query","name":"chain","required":false},{"schema":{"type":"boolean"},"in":"query","name":"freelyTradable","required":false}],"responses":{"200":{"description":"Default Response"}}}},"/v1/rwa/assets/{id}":{"get":{"summary":"One RWA asset ({chain}:{address})","tags":["rwa"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/rwa/assets/{id}/yield-history":{"get":{"summary":"Historical APY + TVL series (daily) for yield-bearing assets","tags":["rwa"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/rwa/categories":{"get":{"summary":"RWA categories with asset counts","tags":["rwa"],"responses":{"200":{"description":"Default Response"}}}},"/v1/rwa/quote":{"post":{"summary":"Quote buying/selling a tradable RWA via the swap engine","tags":["rwa"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"partnerFeeBps":{"type":"integer","minimum":0,"maximum":1000},"partnerFeeRecipient":{"type":"string"},"chain":{"type":"string","enum":["solana","ethereum","base","arbitrum","bsc","polygon"]},"inputToken":{"type":"string","minLength":1},"outputToken":{"type":"string","minLength":1},"amountIn":{"type":"string","pattern":"^\\d+$"},"slippageBps":{"default":50,"type":"integer","minimum":1,"maximum":5000}},"required":["chain","inputToken","outputToken","amountIn"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/rwa/build":{"post":{"summary":"Build a buy/sell transaction for a tradable RWA","tags":["rwa"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"partnerFeeBps":{"type":"integer","minimum":0,"maximum":1000},"partnerFeeRecipient":{"type":"string"},"chain":{"type":"string","enum":["solana","ethereum","base","arbitrum","bsc","polygon"]},"inputToken":{"type":"string","minLength":1},"outputToken":{"type":"string","minLength":1},"amountIn":{"type":"string","pattern":"^\\d+$"},"slippageBps":{"default":50,"type":"integer","minimum":1,"maximum":5000},"taker":{"type":"string","minLength":1},"provider":{"type":"string"},"simulate":{"default":true,"type":"boolean"}},"required":["chain","inputToken","outputToken","amountIn","taker"]}}}},"responses":{"200":{"description":"Default Response"}}}},"/v1/fees/summary":{"get":{"summary":"Integrator fees accrued on built actions, grouped by token (scoped)","tags":["fees"],"parameters":[{"schema":{"type":"string","minLength":1},"in":"query","name":"recipient","required":false},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"in":"query","name":"since","required":false},{"schema":{"default":true,"type":"boolean"},"in":"query","name":"appliedOnly","required":false}],"responses":{"200":{"description":"Default Response"}}}},"/v1/memecoins/{venue}/buy":{"post":{"summary":"Build a bonding-curve buy transaction","tags":["memecoins"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"partnerFeeBps":{"type":"integer","minimum":0,"maximum":1000},"partnerFeeRecipient":{"type":"string"},"address":{"type":"string","minLength":1},"taker":{"type":"string","minLength":1},"amountIn":{"type":"string","pattern":"^\\d+$"},"slippageBps":{"default":100,"type":"integer","minimum":1,"maximum":5000},"simulate":{"default":true,"type":"boolean"}},"required":["address","taker","amountIn"]}}}},"parameters":[{"schema":{"type":"string","enum":["pumpfun","fourmeme"]},"in":"path","name":"venue","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/memecoins/{venue}/sell":{"post":{"summary":"Build a bonding-curve sell transaction","tags":["memecoins"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"partnerFeeBps":{"type":"integer","minimum":0,"maximum":1000},"partnerFeeRecipient":{"type":"string"},"address":{"type":"string","minLength":1},"taker":{"type":"string","minLength":1},"amountIn":{"type":"string","pattern":"^\\d+$"},"slippageBps":{"default":100,"type":"integer","minimum":1,"maximum":5000},"simulate":{"default":true,"type":"boolean"}},"required":["address","taker","amountIn"]}}}},"parameters":[{"schema":{"type":"string","enum":["pumpfun","fourmeme"]},"in":"path","name":"venue","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/perps/{venue}/orders/build":{"post":{"summary":"Build an order (market/limit, optional TP/SL legs) as signable steps","tags":["perps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"partnerFeeBps":{"type":"integer","minimum":0,"maximum":1000},"partnerFeeRecipient":{"type":"string"},"owner":{"type":"string","minLength":1},"marketId":{"type":"string","minLength":1},"side":{"type":"string","enum":["long","short"]},"type":{"type":"string","enum":["market","limit"]},"sizeBase":{"type":"string","pattern":"^\\d+(\\.\\d+)?$"},"limitPrice":{"type":"string","pattern":"^\\d+(\\.\\d+)?$"},"tif":{"default":"GTC","type":"string","enum":["GTC","IOC","ALO"]},"reduceOnly":{"default":false,"type":"boolean"},"takeProfitPrice":{"type":"string","pattern":"^\\d+(\\.\\d+)?$"},"stopLossPrice":{"type":"string","pattern":"^\\d+(\\.\\d+)?$"}},"required":["owner","marketId","side","type","sizeBase"]}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"venue","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/perps/{venue}/orders/cancel":{"post":{"summary":"Build an order-cancel action","tags":["perps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"string","minLength":1},"marketId":{"type":"string","minLength":1},"orderId":{"type":"string","minLength":1}},"required":["owner","marketId","orderId"]}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"venue","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/perps/{venue}/collateral":{"post":{"summary":"Build an isolated-margin collateral add/remove action","tags":["perps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"string","minLength":1},"marketId":{"type":"string","minLength":1},"amountUsd":{"type":"string","pattern":"^\\d+(\\.\\d+)?$"},"direction":{"type":"string","enum":["add","remove"]}},"required":["owner","marketId","amountUsd","direction"]}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"venue","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/perps/{venue}/margin":{"post":{"summary":"Build a leverage / margin-mode config action","tags":["perps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"string","minLength":1},"marketId":{"type":"string","minLength":1},"leverage":{"type":"integer","minimum":1,"maximum":100},"mode":{"type":"string","enum":["cross","isolated"]}},"required":["owner","marketId","leverage","mode"]}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"venue","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/predictions/{venue}/onboarding":{"post":{"summary":"Build the one-time onboarding steps (allowances + CLOB credentials)","tags":["predictions"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"string","minLength":1}},"required":["owner"]}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"venue","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/predictions/{venue}/orders/build":{"post":{"summary":"Build a signed-order flow for an outcome (full steps incl. credentials)","tags":["predictions"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"partnerFeeBps":{"type":"integer","minimum":0,"maximum":1000},"partnerFeeRecipient":{"type":"string"},"owner":{"type":"string","minLength":1},"marketId":{"type":"string","minLength":1},"outcomeId":{"type":"string","minLength":1},"side":{"type":"string","enum":["buy","sell"]},"price":{"type":"string","pattern":"^0(\\.\\d+)?$|^1(\\.0+)?$"},"shares":{"type":"string","pattern":"^\\d+(\\.\\d+)?$"},"orderType":{"default":"GTC","type":"string","enum":["GTC","FOK","FAK","GTD"]},"funder":{"type":"string"},"ownerId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"signatureType":{"default":0,"anyOf":[{"type":"number","enum":[0]},{"type":"number","enum":[1]},{"type":"number","enum":[2]},{"type":"number","enum":[3]}]},"hints":{"default":{"hasApiCreds":false,"hasUsdcAllowance":false,"hasCtfApproval":false},"type":"object","properties":{"hasApiCreds":{"default":false,"type":"boolean"},"hasUsdcAllowance":{"default":false,"type":"boolean"},"hasCtfApproval":{"default":false,"type":"boolean"}}}},"required":["owner","marketId","outcomeId","side","price","shares"]}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"venue","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/v1/predictions/{venue}/claims/build":{"post":{"summary":"Build the claim (redeem winnings) transaction for a resolved market","tags":["predictions"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"string","minLength":1},"marketId":{"type":"string","minLength":1},"simulate":{"default":true,"type":"boolean"}},"required":["owner","marketId"]}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"venue","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/mcp":{"post":{"responses":{"200":{"description":"Default Response"}}},"get":{"responses":{"200":{"description":"Default Response"}}},"delete":{"responses":{"200":{"description":"Default Response"}}}},"/v1/openapi.json":{"get":{"responses":{"200":{"description":"Default Response"}}}},"/llms.txt":{"get":{"responses":{"200":{"description":"Default Response"}}}},"/llms-full.txt":{"get":{"responses":{"200":{"description":"Default Response"}}}},"/llms/{doc}":{"get":{"parameters":[{"schema":{"type":"string"},"in":"path","name":"doc","required":true}],"responses":{"200":{"description":"Default Response"}}}}},"tags":[{"name":"meta","description":"Health, chains, providers"},{"name":"tokens","description":"Token registry + prices"},{"name":"swaps","description":"Meta-aggregated swaps"},{"name":"memecoins","description":"Launchpad feeds + trading data"},{"name":"perps","description":"Perpetual futures venues"},{"name":"nft","description":"Collections, listings, holdings"},{"name":"predictions","description":"Prediction markets"},{"name":"rwa","description":"Tokenized real-world assets"}]}