{"openapi":"3.1.0","info":{"title":"Uprally API","version":"1","description":"Robinhood Chain coins, who's in them, and swaps and launches built for your own wallet to sign. Free, no key, non-custodial: every build is simulated first."},"servers":[{"url":"https://uprally.co/api/v1"}],"paths":{"/chain":{"get":{"summary":"Robinhood Chain: the contracts a swap or launch touches, the fees, and how far Uprally has read.","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"number","const":4663},"name":{"type":"string"},"native":{"type":"object","properties":{"symbol":{"type":"string","const":"ETH"},"decimals":{"type":"number","const":18}},"required":["symbol","decimals"]},"rpc":{"type":"string"},"explorer":{"type":"string"},"currencies":{"type":"object","properties":{"WETH":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"USDG":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"}},"required":["WETH","USDG"]},"contracts":{"type":"object","properties":{"universalRouter":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"Uniswap's Universal Router: every pool swap goes through it"},"permit2":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"multicall3":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"uniswap":{"type":"object","properties":{"v2Factory":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"v3Factory":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"v4PoolManager":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"v4PositionManager":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"}},"required":["v2Factory","v3Factory","v4PoolManager","v4PositionManager"]},"launchpads":{"type":"object","properties":{"ponsFactory":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"flapPortal":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"}},"required":["ponsFactory","flapPortal"]}},"required":["universalRouter","permit2","multicall3","uniswap","launchpads"]},"swaps":{"type":"object","properties":{"uprallyFeeBps":{"type":"integer","description":"Uprally's fee on a pool swap, basis points"},"maxBuilderFeeBps":{"type":"integer"},"curveTradesPayFees":{"type":"boolean"}},"required":["uprallyFeeBps","maxBuilderFeeBps","curveTradesPayFees"]},"launches":{"type":"object","properties":{"on":{"type":"boolean"},"launchpads":{"type":"array","items":{"type":"string"}}},"required":["on","launchpads"]},"data":{"anyOf":[{"type":"object","properties":{"headBlock":{"type":["number","null"]},"indexedThroughBlock":{"type":["number","null"]},"stale":{"type":["boolean","null"]}},"required":["headBlock","indexedThroughBlock","stale"],"additionalProperties":true},{"type":"null"}]}},"required":["chainId","name","native","rpc","explorer","currencies","contracts","swaps","launches","data"]}}}},"default":{"description":"An error. Codes this endpoint can return: see /errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":[]}},"/coins":{"get":{"summary":"Every coin with a market, sorted, with the figures the explore page shows.","parameters":[{"name":"sort","in":"query","required":false,"description":"Default volume (24 h)","schema":{"type":"string","enum":["volume","marketCap","new","activity"]}},{"name":"limit","in":"query","required":false,"description":"Default 50","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"The `next` of the previous page","schema":{"type":"integer"}},{"name":"minHolders","in":"query","required":false,"description":"Only coins with at least this many holders","schema":{"type":"number"}},{"name":"maxBundledHeldPct","in":"query","required":false,"description":"Only coins whose bundled wallets hold at most this %","schema":{"type":"number"}},{"name":"maxSnipersHeldPct","in":"query","required":false,"description":"Only coins whose snipers hold at most this %","schema":{"type":"number"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sort":{"type":"string"},"total":{"type":"integer"},"next":{"anyOf":[{"anyOf":[{"type":"integer"},{"type":"string"}]},{"type":"null"}],"description":"Send as cursor for the next page; null at the end"},"leftOutUncounted":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"With a holder filter: coins left out because their holders were not counted from launch"},"coins":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"name":{"type":["string","null"]},"ticker":{"type":["string","null"]},"image":{"type":["string","null"]},"launchpad":{"type":["string","null"],"description":"pons, flap, doppler, bankr, long, clanker, poolstrade, or null"},"stage":{"type":["string","null"],"description":"curve: still on its launchpad curve; pool: trading in a pool"},"createdAt":{"type":["string","null"],"description":"ISO 8601"},"graduatedAt":{"type":["string","null"],"description":"ISO 8601"},"marketCapUsd":{"type":["number","null"],"description":"US dollars; null when not known"},"change5mPct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"},"buys5m":{"type":["number","null"]},"buyers5m":{"type":["number","null"]},"volume5mUsd":{"type":["number","null"],"description":"US dollars; null when not known"},"volume24hUsd":{"type":["number","null"],"description":"US dollars; null when not known"},"trades24h":{"type":["number","null"]},"curve":{"anyOf":[{"type":"object","properties":{"progress":{"type":["number","null"],"description":"0 to 1: how far to graduation"},"raisedUsd":{"type":["number","null"],"description":"US dollars; null when not known"},"targetUsd":{"type":["number","null"],"description":"US dollars; null when not known"}},"required":["progress","raisedUsd","targetUsd"]},{"type":"null"}]},"risk":{"anyOf":[{"type":"object","properties":{"level":{"type":["string","null"],"description":"green, amber or red"},"says":{"type":["string","null"]},"unknown":{"type":"array","items":{"type":"string"}}},"required":["level","says","unknown"]},{"type":"null"}]},"holders":{"anyOf":[{"type":"object","properties":{"count":{"type":["number","null"]},"top10Pct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"},"bundledHeldPct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"},"snipersHeldPct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"},"creatorHeldPct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"}},"required":["count","top10Pct","bundledHeldPct","snipersHeldPct","creatorHeldPct"],"description":"From the launch block (only coins launched since 14 Oct 2026); null otherwise"},{"type":"null"}],"description":"From the launch block (only coins launched since 14 Oct 2026); null otherwise"},"links":{"type":"object","properties":{"x":{"type":["string","null"]},"telegram":{"type":["string","null"]},"website":{"type":["string","null"]}},"required":["x","telegram","website"]},"page":{"type":"string","description":"The coin on uprally.co"}},"required":["address","name","ticker","image","launchpad","stage","createdAt","graduatedAt","marketCapUsd","change5mPct","buys5m","buyers5m","volume5mUsd","volume24hUsd","trades24h","curve","risk","holders","links","page"]}}},"required":["sort","total","next","leftOutUncounted","coins"]}}}},"default":{"description":"An error. Codes this endpoint can return: INVALID_QUERY.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":["INVALID_QUERY"]}},"/coins/new":{"get":{"summary":"Launches across every launchpad, newest first. Poll with `since`; page back with `before`.","parameters":[{"name":"limit","in":"query","required":false,"description":"Default 40","schema":{"type":"integer","minimum":1,"maximum":60}},{"name":"since","in":"query","required":false,"description":"Only coins launched after this time (the newest createdAt you have)","schema":{"type":"string"}},{"name":"before","in":"query","required":false,"description":"The `next` of the previous page","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"coins":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"name":{"type":["string","null"]},"ticker":{"type":["string","null"]},"image":{"type":["string","null"]},"launchpad":{"type":["string","null"],"description":"pons, flap, doppler, bankr, long, clanker, poolstrade, or null"},"stage":{"type":["string","null"],"description":"curve: still on its launchpad curve; pool: trading in a pool"},"createdAt":{"type":["string","null"],"description":"ISO 8601"},"graduatedAt":{"type":["string","null"],"description":"ISO 8601"},"marketCapUsd":{"type":["number","null"],"description":"US dollars; null when not known"},"change5mPct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"},"buys5m":{"type":["number","null"]},"buyers5m":{"type":["number","null"]},"volume5mUsd":{"type":["number","null"],"description":"US dollars; null when not known"},"volume24hUsd":{"type":["number","null"],"description":"US dollars; null when not known"},"trades24h":{"type":["number","null"]},"curve":{"anyOf":[{"type":"object","properties":{"progress":{"type":["number","null"],"description":"0 to 1: how far to graduation"},"raisedUsd":{"type":["number","null"],"description":"US dollars; null when not known"},"targetUsd":{"type":["number","null"],"description":"US dollars; null when not known"}},"required":["progress","raisedUsd","targetUsd"]},{"type":"null"}]},"risk":{"anyOf":[{"type":"object","properties":{"level":{"type":["string","null"],"description":"green, amber or red"},"says":{"type":["string","null"]},"unknown":{"type":"array","items":{"type":"string"}}},"required":["level","says","unknown"]},{"type":"null"}]},"holders":{"anyOf":[{"type":"object","properties":{"count":{"type":["number","null"]},"top10Pct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"},"bundledHeldPct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"},"snipersHeldPct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"},"creatorHeldPct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"}},"required":["count","top10Pct","bundledHeldPct","snipersHeldPct","creatorHeldPct"],"description":"From the launch block (only coins launched since 14 Oct 2026); null otherwise"},{"type":"null"}],"description":"From the launch block (only coins launched since 14 Oct 2026); null otherwise"},"links":{"type":"object","properties":{"x":{"type":["string","null"]},"telegram":{"type":["string","null"]},"website":{"type":["string","null"]}},"required":["x","telegram","website"]},"page":{"type":"string","description":"The coin on uprally.co"}},"required":["address","name","ticker","image","launchpad","stage","createdAt","graduatedAt","marketCapUsd","change5mPct","buys5m","buyers5m","volume5mUsd","volume24hUsd","trades24h","curve","risk","holders","links","page"]}},"next":{"type":["string","null"]}},"required":["coins","next"]}}}},"default":{"description":"An error. Codes this endpoint can return: INVALID_QUERY.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":["INVALID_QUERY"]}},"/coins/{address}":{"get":{"summary":"One coin: its profile, market, launchpad curve, risk flags, contract checks and pools.","parameters":[{"name":"address","in":"path","required":true,"description":"The coin's contract address","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"name":{"type":["string","null"]},"ticker":{"type":["string","null"]},"image":{"type":["string","null"]},"description":{"type":["string","null"]},"links":{"anyOf":[{"type":"object","properties":{},"additionalProperties":true},{"type":"null"}]},"launchpad":{"type":["string","null"]},"createdAt":{"type":["string","null"],"description":"ISO 8601"},"market":{"anyOf":[{"type":"object","properties":{"priceUsd":{"type":["number","null"],"description":"US dollars; null when not known"},"marketCapUsd":{"type":["number","null"],"description":"US dollars; null when not known"},"liquidityUsd":{"type":["number","null"],"description":"US dollars; null when not known"},"volume24hUsd":{"type":["number","null"],"description":"US dollars; null when not known"},"totalSupply":{"type":["number","null"]}},"required":["priceUsd","marketCapUsd","liquidityUsd","volume24hUsd","totalSupply"],"additionalProperties":true},{"type":"null"}]},"curve":{"anyOf":[{"type":"object","properties":{"launchpad":{"type":["string","null"]},"progress":{"type":["number","null"]},"graduated":{"type":"boolean"}},"required":["launchpad","progress","graduated"],"additionalProperties":true},{"type":"null"}]},"risk":{"anyOf":[{"type":"object","properties":{"level":{"type":"string"},"reasons":{"type":"array","items":{}},"unknown":{"type":"array","items":{"type":"string"}}},"required":["level","reasons","unknown"],"additionalProperties":true},{"type":"null"}]},"contract":{"anyOf":[{"type":"object","properties":{"sellable":{},"buyTaxBps":{"type":["number","null"]},"sellTaxBps":{"type":["number","null"]}},"required":["buyTaxBps","sellTaxBps"],"additionalProperties":true},{"type":"null"}]},"pools":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string"},"venue":{"type":["string","null"]},"version":{"type":"string"},"liquidityUsd":{"type":["number","null"],"description":"US dollars; null when not known"}},"required":["address","venue","version","liquidityUsd"],"additionalProperties":true}},"page":{"type":"string"}},"required":["address","name","ticker","image","description","links","launchpad","createdAt","market","curve","risk","contract","pools","page"]}}}},"default":{"description":"An error. Codes this endpoint can return: INVALID_ADDRESS, UNKNOWN_COIN, DATA_UNREACHABLE.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":["INVALID_ADDRESS","UNKNOWN_COIN","DATA_UNREACHABLE"]}},"/coins/{address}/holders":{"get":{"summary":"Holders & risk: every holder counted from the launch block, the creator, and the bundled and sniper groups with what they hold now.","parameters":[{"name":"address","in":"path","required":true,"description":"The coin's contract address","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"tracked":{"type":"boolean","const":false},"reason":{"type":"string","description":"notFromLaunch: launched before 14 Oct 2026 or not read from its launch; incomplete; unsupported"}},"required":["tracked","reason"]},{"type":"object","properties":{"tracked":{"type":"boolean","const":true},"at":{"type":["number","null"]},"block":{"type":"integer"},"sinceLaunch":{"type":["number","null"]},"holders":{"type":"integer"},"top10Pct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"},"curvePct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"},"creator":{"anyOf":[{"type":"object","properties":{"wallet":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"boughtPct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"},"heldPct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"}},"required":["wallet","boughtPct","heldPct"],"additionalProperties":true},{"type":"null"}]},"groups":{"type":"object","properties":{"bundled":{"type":"object","properties":{"boughtPct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"},"heldPct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"},"wallets":{"type":"integer"},"level":{"type":"string","enum":["plain","amber","red"],"description":"From the share held now: bundled amber 10%, red 20%; snipers amber 5%, red 20%"}},"required":["boughtPct","heldPct","wallets","level"]},"snipers":{"type":"object","properties":{"boughtPct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"},"heldPct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"},"wallets":{"type":"integer"},"level":{"type":"string","enum":["plain","amber","red"],"description":"From the share held now: bundled amber 10%, red 20%; snipers amber 5%, red 20%"}},"required":["boughtPct","heldPct","wallets","level"]}},"required":["bundled","snipers"]},"list":{"type":"array","items":{"type":"object","properties":{"wallet":{"type":"string"},"pct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"},"label":{"type":["string","null"]},"tags":{"type":"array","items":{"type":"string"}}},"required":["wallet","pct","label","tags"],"additionalProperties":true}}},"required":["tracked","at","block","sinceLaunch","holders","top10Pct","curvePct","creator","groups","list"],"additionalProperties":true}]}}}},"default":{"description":"An error. Codes this endpoint can return: INVALID_ADDRESS, DATA_UNREACHABLE.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":["INVALID_ADDRESS","DATA_UNREACHABLE"]}},"/coins/{address}/holders/{group}":{"get":{"summary":"The wallets in one group (bundled or snipers), and whether 3 or more of them sold in one transaction.","parameters":[{"name":"address","in":"path","required":true,"description":"The coin's contract address","schema":{"type":"string"}},{"name":"group","in":"path","required":true,"description":"bundled or snipers","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"wallets":{"type":"array","items":{"type":"object","properties":{"wallet":{"type":"string"},"boughtPct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"},"heldPct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"}},"required":["wallet","boughtPct","heldPct"],"additionalProperties":true}},"together":{"anyOf":[{"type":"object","properties":{"tx":{"type":"string"},"wallets":{"type":"integer"},"secs":{"type":"number"}},"required":["tx","wallets","secs"]},{"type":"null"}],"description":"3+ of the group sold in one transaction"}},"required":["wallets","together"]}}}},"default":{"description":"An error. Codes this endpoint can return: INVALID_ADDRESS, UNKNOWN_GROUP, DATA_UNREACHABLE.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":["INVALID_ADDRESS","UNKNOWN_GROUP","DATA_UNREACHABLE"]}},"/coins/{address}/candles":{"get":{"summary":"Price candles in USD from every trade on chain, continuous (a quiet interval is flat).","parameters":[{"name":"address","in":"path","required":true,"description":"The coin's contract address","schema":{"type":"string"}},{"name":"tf","in":"query","required":false,"description":"Default 5m","schema":{"type":"string","enum":["1m","5m","15m","1h","4h","1d"]}},{"name":"limit","in":"query","required":false,"description":"Default 300","schema":{"type":"integer","minimum":2,"maximum":1000}},{"name":"to","in":"query","required":false,"description":"Unix seconds: the last candle; default now","schema":{"type":"integer"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"tf":{"type":"string"},"stepSecs":{"type":"integer"},"columns":{"type":"array","items":{"type":"string"}},"candles":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"more":{"type":"boolean"},"indexedThroughBlock":{"type":["number","null"]}},"required":["token","tf","stepSecs","columns","candles","more","indexedThroughBlock"]}}}},"default":{"description":"An error. Codes this endpoint can return: INVALID_ADDRESS, INVALID_QUERY, DATA_UNREACHABLE.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":["INVALID_ADDRESS","INVALID_QUERY","DATA_UNREACHABLE"]}},"/coins/{address}/trades":{"get":{"summary":"Its latest trades on every app (curve and pool), read from the chain.","parameters":[{"name":"address","in":"path","required":true,"description":"The coin's contract address","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"trades":{"type":"array","items":{"type":"object","properties":{"tx":{"type":"string"},"at":{"type":"string"},"block":{"type":"number"},"side":{"type":"string","enum":["buy","sell"]},"trader":{"type":["string","null"]},"valueUsd":{"type":["number","null"],"description":"US dollars; null when not known"},"priceUsd":{"type":["number","null"],"description":"US dollars; null when not known"}},"required":["tx","at","block","side","trader","valueUsd","priceUsd"],"additionalProperties":true}}},"required":["token","trades"]}}}},"default":{"description":"An error. Codes this endpoint can return: INVALID_ADDRESS, DATA_UNREACHABLE.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":["INVALID_ADDRESS","DATA_UNREACHABLE"]}},"/coins/{address}/traders":{"get":{"summary":"Its traders by profit on it: bought, sold, held, realised and unrealised, in USD.","parameters":[{"name":"address","in":"path","required":true,"description":"The coin's contract address","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Default 20","schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"traders":{"type":"array","items":{"type":"object","properties":{"wallet":{"type":"string"},"pnlUsd":{"type":["number","null"],"description":"US dollars; null when not known"}},"required":["wallet","pnlUsd"],"additionalProperties":true}}},"required":["token","traders"],"additionalProperties":true}}}},"default":{"description":"An error. Codes this endpoint can return: INVALID_ADDRESS, INVALID_QUERY, DATA_UNREACHABLE.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":["INVALID_ADDRESS","INVALID_QUERY","DATA_UNREACHABLE"]}},"/coins/{address}/creator":{"get":{"summary":"Who launched it, their other launches this week, and how they trade this coin and others.","parameters":[{"name":"address","in":"path","required":true,"description":"The coin's contract address","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"creator":{"type":["string","null"]},"launchpad":{"type":["string","null"]}},"required":["creator","launchpad"],"additionalProperties":true}}}},"default":{"description":"An error. Codes this endpoint can return: INVALID_ADDRESS, UNKNOWN_CREATOR, DATA_UNREACHABLE.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":["INVALID_ADDRESS","UNKNOWN_CREATOR","DATA_UNREACHABLE"]}},"/wallets/{address}":{"get":{"summary":"A wallet's profit and loss on Robinhood Chain coins: totals, per coin, recent trades.","parameters":[{"name":"address","in":"path","required":true,"description":"The wallet","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"type":"string"},"totals":{"type":"object","properties":{},"additionalProperties":true},"coins":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}},"recent":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["wallet","totals","coins","recent"],"additionalProperties":true}}}},"default":{"description":"An error. Codes this endpoint can return: INVALID_ADDRESS, DATA_UNREACHABLE.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":["INVALID_ADDRESS","DATA_UNREACHABLE"]}},"/smart-money":{"get":{"summary":"Wallets that keep making money on Robinhood coins (bots left out), and what they bought lately.","parameters":[{"name":"minutes","in":"query","required":false,"description":"Buys in this window; default 60","schema":{"type":"integer","minimum":1,"maximum":1440}},{"name":"limit","in":"query","required":false,"description":"Default 50","schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"wallets":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}},"buys":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["wallets","buys"],"additionalProperties":true}}}},"default":{"description":"An error. Codes this endpoint can return: INVALID_QUERY, DATA_UNREACHABLE.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":["INVALID_QUERY","DATA_UNREACHABLE"]}},"/top-traders":{"get":{"summary":"The biggest winners right now: each wallet's best coin by profit among coins traded in the window.","parameters":[{"name":"minutes","in":"query","required":false,"description":"Default 60","schema":{"type":"integer","minimum":5,"maximum":1440}},{"name":"limit","in":"query","required":false,"description":"Default 12","schema":{"type":"integer","minimum":1,"maximum":50}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"wallets":{"type":"array","items":{"type":"object","properties":{"wallet":{"type":"string"},"token":{"type":"string"},"pnlUsd":{"type":["number","null"],"description":"US dollars; null when not known"}},"required":["wallet","token","pnlUsd"],"additionalProperties":true}}},"required":["wallets"],"additionalProperties":true}}}},"default":{"description":"An error. Codes this endpoint can return: INVALID_QUERY, DATA_UNREACHABLE.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":["INVALID_QUERY","DATA_UNREACHABLE"]}},"/search":{"get":{"summary":"Coins by name, ticker or address, across the whole chain.","parameters":[{"name":"q","in":"query","required":true,"description":"1 to 64 characters","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string"},"coins":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"page":{"type":"string"}},"required":["address","page"],"additionalProperties":true}}},"required":["q","coins"]}}}},"default":{"description":"An error. Codes this endpoint can return: INVALID_QUERY.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":["INVALID_QUERY"]}},"/quote":{"get":{"summary":"What a buy or sale returns right now, simulated through every route it can take: sends nothing.","parameters":[{"name":"token","in":"query","required":true,"description":"The coin","schema":{"type":"string"}},{"name":"side","in":"query","required":true,"description":"buy: ETH for the coin; sell: the coin for ETH","schema":{"type":"string","enum":["buy","sell"]}},{"name":"amount","in":"query","required":true,"description":"Whole units: ETH (buy) or coins (sell)","schema":{"type":"string"}},{"name":"wallet","in":"query","required":false,"description":"Quote for this wallet","schema":{"type":"string"}},{"name":"slippageBps","in":"query","required":false,"description":"Default 100","schema":{"type":"integer"}},{"name":"feeBps","in":"query","required":false,"description":"Your own fee, up to 300","schema":{"type":"integer"}},{"name":"feeRecipient","in":"query","required":false,"description":"Who gets feeBps","schema":{"type":"string"}},{"name":"maxPriceImpactPct","in":"query","required":false,"description":"Default 50","schema":{"type":"number"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"number","const":4663},"token":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"symbol":{"type":["string","null"]},"side":{"type":"string","enum":["buy","sell"]},"amountIn":{"type":"object","properties":{"amount":{"type":"string","description":"Whole units, as a decimal string: \"0.05\""},"wei":{"type":"string","pattern":"^\\d+$","description":"The smallest unit, an integer as a string"},"symbol":{"type":["string","null"],"description":"ETH, or the coin's ticker"}},"required":["amount","wei","symbol"]},"amountOut":{"type":"object","properties":{"amount":{"type":"string","description":"Whole units, as a decimal string: \"0.05\""},"wei":{"type":"string","pattern":"^\\d+$","description":"The smallest unit, an integer as a string"},"symbol":{"type":["string","null"],"description":"ETH, or the coin's ticker"}},"required":["amount","wei","symbol"],"description":"What the trader ends up with, after every fee and tax, simulated"},"minOut":{"type":"object","properties":{"amount":{"type":"string","description":"Whole units, as a decimal string: \"0.05\""},"wei":{"type":"string","pattern":"^\\d+$","description":"The smallest unit, an integer as a string"},"symbol":{"type":["string","null"],"description":"ETH, or the coin's ticker"}},"required":["amount","wei","symbol"],"description":"The least the transaction accepts"},"slippageBps":{"type":"integer"},"priceImpactPct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"},"venue":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"curve"},"launchpad":{"type":"string","enum":["pons","flap"]},"contract":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"}},"required":["kind","launchpad","contract"]},{"type":"object","properties":{"kind":{"type":"string","const":"pool"},"hops":{"type":"array","items":{"type":"object","properties":{"dex":{"type":"string","const":"uniswap"},"version":{"type":"string","enum":["v2","v3","v4"]},"tokenIn":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"tokenOut":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"pool":{"type":["string","null"]},"fee":{"type":"integer"}},"required":["dex","version","tokenIn","tokenOut","pool"],"additionalProperties":true},"description":"From ETH to the coin"}},"required":["kind","hops"]}]},"routesCompared":{"type":"integer"},"fees":{"type":"object","properties":{"taken":{"type":"boolean"},"list":{"type":"array","items":{"type":"object","properties":{"who":{"type":"string","enum":["uprally","builder"]},"recipient":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"bps":{"type":"integer"}},"required":["who","recipient","bps"],"additionalProperties":true}},"why":{"type":"string"}},"required":["taken","list"]},"sellBack":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"sharePct":{"type":"number"},"eth":{"type":"object","properties":{"amount":{"type":"string","description":"Whole units, as a decimal string: \"0.05\""},"wei":{"type":"string","pattern":"^\\d+$","description":"The smallest unit, an integer as a string"}},"required":["amount","wei"]}},"required":["ok","sharePct","eth"],"additionalProperties":true,"description":"A buy: selling what it bought straight back, simulated"},"simulatedFrom":{"type":"string","enum":["wallet","test wallet","holder"]},"gasUsed":{"type":"string","pattern":"^\\d+$","description":"The smallest unit, an integer as a string"},"asOf":{"type":"string"}},"required":["chainId","token","symbol","side","amountIn","amountOut","minOut","slippageBps","priceImpactPct","venue","routesCompared","fees","simulatedFrom","gasUsed","asOf"]}}}},"default":{"description":"An error. Codes this endpoint can return: INVALID_ADDRESS, INVALID_SIDE, INVALID_AMOUNT, TOO_MANY_DECIMALS, INVALID_BPS, INVALID_QUERY, NOT_A_COIN, NO_ROUTE, QUOTE_NEEDS_WALLET, PRICE_IMPACT_TOO_HIGH, SIMULATION_FAILED, HONEYPOT, CHAIN_UNREACHABLE, MARKET_UNREACHABLE, RATE_LIMITED.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":["INVALID_ADDRESS","INVALID_SIDE","INVALID_AMOUNT","TOO_MANY_DECIMALS","INVALID_BPS","INVALID_QUERY","NOT_A_COIN","NO_ROUTE","QUOTE_NEEDS_WALLET","PRICE_IMPACT_TOO_HIGH","SIMULATION_FAILED","HONEYPOT","CHAIN_UNREACHABLE","MARKET_UNREACHABLE","RATE_LIMITED"]}},"/swap":{"post":{"summary":"An unsigned swap for your wallet: the best route, simulated with its minimum, plus any approvals to send first.","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"type":"number","const":4663},"token":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"symbol":{"type":["string","null"]},"side":{"type":"string","enum":["buy","sell"]},"amountIn":{"type":"object","properties":{"amount":{"type":"string","description":"Whole units, as a decimal string: \"0.05\""},"wei":{"type":"string","pattern":"^\\d+$","description":"The smallest unit, an integer as a string"},"symbol":{"type":["string","null"],"description":"ETH, or the coin's ticker"}},"required":["amount","wei","symbol"]},"amountOut":{"type":"object","properties":{"amount":{"type":"string","description":"Whole units, as a decimal string: \"0.05\""},"wei":{"type":"string","pattern":"^\\d+$","description":"The smallest unit, an integer as a string"},"symbol":{"type":["string","null"],"description":"ETH, or the coin's ticker"}},"required":["amount","wei","symbol"],"description":"What the trader ends up with, after every fee and tax, simulated"},"minOut":{"type":"object","properties":{"amount":{"type":"string","description":"Whole units, as a decimal string: \"0.05\""},"wei":{"type":"string","pattern":"^\\d+$","description":"The smallest unit, an integer as a string"},"symbol":{"type":["string","null"],"description":"ETH, or the coin's ticker"}},"required":["amount","wei","symbol"],"description":"The least the transaction accepts"},"slippageBps":{"type":"integer"},"priceImpactPct":{"type":["number","null"],"description":"Percent (5 means 5%); null when not known"},"venue":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"curve"},"launchpad":{"type":"string","enum":["pons","flap"]},"contract":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"}},"required":["kind","launchpad","contract"]},{"type":"object","properties":{"kind":{"type":"string","const":"pool"},"hops":{"type":"array","items":{"type":"object","properties":{"dex":{"type":"string","const":"uniswap"},"version":{"type":"string","enum":["v2","v3","v4"]},"tokenIn":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"tokenOut":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"pool":{"type":["string","null"]},"fee":{"type":"integer"}},"required":["dex","version","tokenIn","tokenOut","pool"],"additionalProperties":true},"description":"From ETH to the coin"}},"required":["kind","hops"]}]},"routesCompared":{"type":"integer"},"fees":{"type":"object","properties":{"taken":{"type":"boolean"},"list":{"type":"array","items":{"type":"object","properties":{"who":{"type":"string","enum":["uprally","builder"]},"recipient":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"bps":{"type":"integer"}},"required":["who","recipient","bps"],"additionalProperties":true}},"why":{"type":"string"}},"required":["taken","list"]},"sellBack":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"sharePct":{"type":"number"},"eth":{"type":"object","properties":{"amount":{"type":"string","description":"Whole units, as a decimal string: \"0.05\""},"wei":{"type":"string","pattern":"^\\d+$","description":"The smallest unit, an integer as a string"}},"required":["amount","wei"]}},"required":["ok","sharePct","eth"],"additionalProperties":true,"description":"A buy: selling what it bought straight back, simulated"},"simulatedFrom":{"type":"string","enum":["wallet","test wallet","holder"]},"gasUsed":{"type":"string","pattern":"^\\d+$","description":"The smallest unit, an integer as a string"},"asOf":{"type":"string"},"wallet":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"requires":{"type":"array","items":{"type":"object","properties":{"step":{"type":"string"},"explain":{"type":"string"},"tx":{"type":"object","properties":{"chainId":{"type":"number","const":4663,"description":"Robinhood Chain"},"from":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"The wallet that must send it"},"to":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"data":{"type":"string","pattern":"^0x[0-9a-fA-F]*$","description":"The call data: send it exactly as it is"},"value":{"type":"string","pattern":"^\\d+$","description":"ETH to send with it, in wei"},"gas":{"type":"string","pattern":"^\\d+$","description":"A gas limit with room; absent while a step before it is still needed"}},"required":["chainId","to","data","value"],"description":"An unsigned transaction: sign it with the wallet and send it."}},"required":["step","explain","tx"]},"description":"Approvals to send first, in order; empty when the wallet is ready"},"tx":{"type":"object","properties":{"chainId":{"type":"number","const":4663,"description":"Robinhood Chain"},"from":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"The wallet that must send it"},"to":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"data":{"type":"string","pattern":"^0x[0-9a-fA-F]*$","description":"The call data: send it exactly as it is"},"value":{"type":"string","pattern":"^\\d+$","description":"ETH to send with it, in wei"},"gas":{"type":"string","pattern":"^\\d+$","description":"A gas limit with room; absent while a step before it is still needed"}},"required":["chainId","to","data","value"],"description":"An unsigned transaction: sign it with the wallet and send it."},"expiresAt":{"type":["string","null"],"description":"A router swap reverts after this"},"checks":{"type":"object","properties":{"minimumInCalldata":{"type":"boolean","const":true},"simulated":{"type":"boolean","const":true}},"required":["minimumInCalldata","simulated"],"additionalProperties":true}},"required":["chainId","token","symbol","side","amountIn","amountOut","minOut","slippageBps","priceImpactPct","venue","routesCompared","fees","simulatedFrom","gasUsed","asOf","wallet","requires","tx","expiresAt","checks"]}}}},"default":{"description":"An error. Codes this endpoint can return: INVALID_ADDRESS, INVALID_SIDE, INVALID_AMOUNT, TOO_MANY_DECIMALS, INVALID_BPS, INVALID_QUERY, NOT_A_COIN, NO_ROUTE, QUOTE_NEEDS_WALLET, PRICE_IMPACT_TOO_HIGH, SIMULATION_FAILED, HONEYPOT, CHAIN_UNREACHABLE, MARKET_UNREACHABLE, RATE_LIMITED, WALLET_REQUIRED, INSUFFICIENT_BALANCE, INSUFFICIENT_FUNDS, INVALID_BODY, INVALID_JSON.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":["INVALID_ADDRESS","INVALID_SIDE","INVALID_AMOUNT","TOO_MANY_DECIMALS","INVALID_BPS","INVALID_QUERY","NOT_A_COIN","NO_ROUTE","QUOTE_NEEDS_WALLET","PRICE_IMPACT_TOO_HIGH","SIMULATION_FAILED","HONEYPOT","CHAIN_UNREACHABLE","MARKET_UNREACHABLE","RATE_LIMITED","WALLET_REQUIRED","INSUFFICIENT_BALANCE","INSUFFICIENT_FUNDS","INVALID_BODY","INVALID_JSON"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"The coin"},"side":{"type":"string","enum":["buy","sell"]},"amount":{"type":"string","description":"Whole units: ETH to spend (buy) or coins to sell (sell)"},"wallet":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"slippageBps":{"type":"integer","minimum":1,"maximum":5000,"description":"Default 100 (1%)"},"feeBps":{"type":"integer","minimum":0,"maximum":300,"description":"Your own fee on the trade, in ETH, up to 300 (3%)"},"feeRecipient":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"Who gets feeBps"},"maxPriceImpactPct":{"type":"number","minimum":0,"maximum":100,"description":"Refuse past this price impact; default 50"}},"required":["token","side","amount","wallet"]}}}}}},"/tx/{hash}":{"get":{"summary":"Where a transaction is: unknown, pending, confirmed or reverted.","parameters":[{"name":"hash","in":"path","required":true,"description":"The transaction hash","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string"},"state":{"type":"string","enum":["unknown","pending","confirmed","reverted"]},"explorer":{"type":"string"}},"required":["hash","state","explorer"],"additionalProperties":true}}}},"default":{"description":"An error. Codes this endpoint can return: INVALID_HASH, CHAIN_UNREACHABLE.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":["INVALID_HASH","CHAIN_UNREACHABLE"]}},"/launch":{"get":{"summary":"What each launchpad takes (supply, options, picture) and what a launch on it costs and pays.","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"on":{"type":"boolean"},"chainId":{"type":"number","const":4663},"maxFirstBuyEth":{"type":"number"},"launchpads":{"type":"object","properties":{},"additionalProperties":true}},"required":["on","chainId","maxFirstBuyEth","launchpads"],"additionalProperties":true}}}},"default":{"description":"An error. Codes this endpoint can return: see /errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":[]},"post":{"summary":"The unsigned steps of a launch on Doppler, Clanker, Pools.trade, Flap or Pons: the coin's details stored, the launch simulated.","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"launchpad":{"type":"string"},"chainId":{"type":"number","const":4663},"creator":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"token":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"The coin's address, known before it is sent"},"metadataURI":{"type":"string"},"steps":{"type":"array","items":{"type":"object","properties":{"step":{"type":"string"},"tx":{"type":"object","properties":{"chainId":{"type":"number","const":4663,"description":"Robinhood Chain"},"from":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"The wallet that must send it"},"to":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"data":{"type":"string","pattern":"^0x[0-9a-fA-F]*$","description":"The call data: send it exactly as it is"},"value":{"type":"string","pattern":"^\\d+$","description":"ETH to send with it, in wei"},"gas":{"type":"string","pattern":"^\\d+$","description":"A gas limit with room; absent while a step before it is still needed"}},"required":["chainId","to","data","value"],"description":"An unsigned transaction: sign it with the wallet and send it."}},"required":["step","tx"]},"description":"Send in order, each confirmed before the next"},"page":{"type":"string"}},"required":["launchpad","chainId","creator","token","metadataURI","steps","page"],"additionalProperties":true}}}},"default":{"description":"An error. Codes this endpoint can return: INVALID_ADDRESS, INVALID_BODY, INVALID_LAUNCH, INVALID_DETAILS, LAUNCH_WOULD_FAIL, LAUNCH_OFF, UPLOADS_BUSY, RATE_LIMITED.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":["INVALID_ADDRESS","INVALID_BODY","INVALID_LAUNCH","INVALID_DETAILS","LAUNCH_WOULD_FAIL","LAUNCH_OFF","UPLOADS_BUSY","RATE_LIMITED"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"launchpad":{"type":"string","description":"One of GET /launch's launchpads: doppler, clanker, poolstrade, flap, pons"},"creator":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"The wallet that signs and owns the launch"},"name":{"type":"string","description":"1 to 32 characters"},"symbol":{"type":"string","description":"1 to 10 letters or digits"},"description":{"type":"string"},"image":{"type":"string","description":"From POST /media/image (Flap needs one)"},"links":{"type":"object","properties":{"x":{"type":"string"},"telegram":{"type":"string"},"website":{"type":"string"}}},"firstBuyEth":{"type":"number","minimum":0,"maximum":1,"description":"ETH the creator buys in the launch itself"},"options":{"type":"object","properties":{},"additionalProperties":true,"description":"The launchpad's own choices, from GET /launch"},"metadataURI":{"type":"string","description":"Instead of the details: a file an earlier launch build stored"}},"required":["launchpad","creator","name","symbol"]}}}}}},"/media/image":{"post":{"summary":"A picture for a launch: the raw image bytes as the body (PNG, JPEG, GIF or WebP, up to 5 MB). Answers its link.","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"image":{"type":"string"}},"required":["image"]}}}},"default":{"description":"An error. Codes this endpoint can return: UNSUPPORTED_IMAGE, IMAGE_TOO_LARGE, INVALID_DETAILS, UPLOADS_BUSY, RATE_LIMITED.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":["UNSUPPORTED_IMAGE","IMAGE_TOO_LARGE","INVALID_DETAILS","UPLOADS_BUSY","RATE_LIMITED"],"requestBody":{"required":true,"content":{"image/png":{"schema":{"type":"string","format":"binary"}},"image/jpeg":{"schema":{"type":"string","format":"binary"}},"image/gif":{"schema":{"type":"string","format":"binary"}},"image/webp":{"schema":{"type":"string","format":"binary"}}}}}},"/creators/{address}/fees":{"get":{"summary":"What each coin a wallet launched has earned it in trading fees, and the transactions that claim it.","parameters":[{"name":"address","in":"path","required":true,"description":"The creator's wallet","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"coins":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"launchpad":{"type":"string"},"owed":{"type":"object","properties":{"eth":{"anyOf":[{"type":"object","properties":{"amount":{"type":"string","description":"Whole units, as a decimal string: \"0.05\""},"wei":{"type":"string","pattern":"^\\d+$","description":"The smallest unit, an integer as a string"}},"required":["amount","wei"]},{"type":"null"}]},"token":{"anyOf":[{"type":"object","properties":{"wei":{"type":"string","pattern":"^\\d+$","description":"The smallest unit, an integer as a string"}},"required":["wei"]},{"type":"null"}]}},"required":["eth","token"]},"steps":{"type":"array","items":{"type":"object","properties":{"step":{"type":"string"},"tx":{"type":"object","properties":{"chainId":{"type":"number","const":4663,"description":"Robinhood Chain"},"from":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"The wallet that must send it"},"to":{"type":"string","pattern":"^0x[0-9a-f]{40}$","description":"A 0x address, lower case"},"data":{"type":"string","pattern":"^0x[0-9a-fA-F]*$","description":"The call data: send it exactly as it is"},"value":{"type":"string","pattern":"^\\d+$","description":"ETH to send with it, in wei"},"gas":{"type":"string","pattern":"^\\d+$","description":"A gas limit with room; absent while a step before it is still needed"}},"required":["chainId","to","data","value"],"description":"An unsigned transaction: sign it with the wallet and send it."}},"required":["step","tx"]}}},"required":["token","launchpad","owed","steps"]}}},"required":["wallet","coins"]}}}},"default":{"description":"An error. Codes this endpoint can return: INVALID_ADDRESS, INVALID_LAUNCH.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":["INVALID_ADDRESS","INVALID_LAUNCH"]}},"/errors":{"get":{"summary":"Every error code: what it means, the fix, and whether retrying can succeed.","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"status":{"type":"integer"},"meaning":{"type":"string"},"fix":{"type":"string"},"retry":{"type":"boolean"}},"required":["code","status","meaning","fix","retry"]}}},"required":["errors"]}}}},"default":{"description":"An error. Codes this endpoint can return: see /errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable: act on this"},"message":{"type":"string"},"fix":{"type":"string"},"field":{"type":"string"},"detail":{}},"required":["code","message"]}},"required":["error"]}}}}},"x-error-codes":[]}}}}