{"openapi":"3.1.0","info":{"title":"DYOR Fun Robinhood Developer API","version":"1.5.0","description":"Robinhood Chain API (chain ID 4663). Upload launch media, publish metadata, prepare unsigned transactions, and read the independently indexed Robinhood dataset. Arc and Stable use separate chain-pinned API prefixes and databases."},"servers":[{"url":"https://dyorv3.org"}],"tags":[{"name":"Metadata"},{"name":"Launch"},{"name":"Market"},{"name":"Integration"},{"name":"System"}],"paths":{"/api/v1/images":{"post":{"tags":["Metadata"],"summary":"Upload a token image","description":"PNG, JPEG, WebP or GIF; any aspect ratio; max 4.5 MB. Images are auto-oriented, center-cropped, and normalized to a 500x500 WebP.","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["image"],"properties":{"image":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"Uploaded image","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImageUpload"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}}}},"/api/v1/metadata":{"post":{"tags":["Metadata"],"summary":"Create token metadata","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetadataInput"}}}},"responses":{"200":{"description":"Metadata created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetadataCreated"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}}}},"/api/v1/metadata/{id}":{"get":{"tags":["Metadata"],"summary":"Read token metadata","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"ERC-20 metadata document"},"404":{"description":"Error response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}}}},"/api/v1/launch/prepare":{"post":{"tags":["Launch"],"summary":"Prepare an unsigned launch transaction","description":"Returns EIP-155 transaction fields for the selected chain (cookie or ?chain=robinhood|arc). The caller signs and broadcasts; the API never receives a private key.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LaunchInput"}}}},"responses":{"200":{"description":"Unsigned transaction","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreparedTransaction"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"503":{"description":"Error response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}}}},"/api/v1/tokens":{"get":{"tags":["Market"],"summary":"List indexed launches","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"cursor","in":"query","description":"nextCursor from the previous response","schema":{"type":"integer"}}],"responses":{"200":{"description":"Paginated token list"}}}},"/api/v1/tokens/{address}":{"get":{"tags":["Market"],"summary":"Read token and live graduation progress","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}],"responses":{"200":{"description":"Token detail","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"404":{"description":"Error response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}}}},"/api/v1/tokens/{address}/trades":{"get":{"tags":["Market"],"summary":"Read recent indexed V3 swaps","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}}],"responses":{"200":{"description":"Recent buy and sell activity"},"400":{"description":"Error response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}}}},"/api/v1/portfolio/{address}":{"get":{"tags":["Market"],"summary":"Read wallet launch and indexed creator reward history","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}],"responses":{"200":{"description":"Created tokens, reward assignments and harvested fee totals"},"400":{"description":"Error response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}}}},"/api/v1/integration/config":{"get":{"tags":["Integration"],"summary":"Read production, test and Uniswap contract configuration","responses":{"200":{"description":"Integration configuration"}}}},"/api/v1/integration/status/{address}":{"get":{"tags":["Integration"],"summary":"Read stable progress, graduation and migration status","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}],"responses":{"200":{"description":"Integration token status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationStatus"}}}},"404":{"description":"Error response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}}}},"/api/v1/integration/test-fixtures":{"get":{"tags":["Integration"],"summary":"Read graduated and in-progress legacy test fixtures","responses":{"200":{"description":"Integration test tokens"}}}},"/api/v1/health":{"get":{"tags":["System"],"summary":"Read API and chain health","responses":{"200":{"description":"Healthy"},"503":{"description":"Error response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}},"components":{"schemas":{"ImageUpload":{"type":"object","required":["id","url"],"properties":{"id":{"type":"string","format":"uuid"},"url":{"type":"string"}}},"MetadataInput":{"type":"object","required":["name","symbol","image"],"properties":{"name":{"type":"string","maxLength":60},"symbol":{"type":"string","maxLength":20},"description":{"type":"string","maxLength":256},"image":{"type":"string"},"website":{"type":"string","format":"uri"},"x":{"type":"string","format":"uri"},"telegram":{"type":"string","format":"uri"}}},"MetadataCreated":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"uri":{"type":"string","format":"uri"}}},"LaunchInput":{"type":"object","required":["name","symbol","metadataUri","feeRecipient"],"properties":{"name":{"type":"string","maxLength":60},"symbol":{"type":"string","maxLength":20},"metadataUri":{"type":"string","format":"uri"},"feeRecipient":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"sender":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Actual transaction sender. Supply this so the API can apply any Factory fee exemption."},"initialBuyEth":{"type":"string","default":"0","description":"Legacy compatibility name. Initial buy in the selected chain's native asset: ETH on Robinhood, USDC on Arc, or USDT0 on Stable. Arc and Stable accept at most 6 decimal places."},"minTokensOut":{"type":"string","default":"0"}}},"PreparedTransaction":{"type":"object","properties":{"chain":{"enum":["robinhood","arc","stable","xlayer","hyperevm"]},"chainId":{"enum":[4663,5042,988,196,999]},"to":{"type":"string"},"data":{"type":"string"},"value":{"type":"string"},"gas":{"type":"string","description":"Explicit gas limit when required by the selected chain."},"requiresBigBlocks":{"type":"boolean"},"launchFee":{"type":"string"},"baseLaunchFee":{"type":"string"},"feeExempt":{"type":"boolean"},"initialBuy":{"type":"string"},"pair":{"type":"object"},"approval":{"type":["object","null"]}}},"IntegrationStatus":{"type":"object","properties":{"schemaVersion":{"type":"string"},"chain":{"enum":["robinhood","arc","stable","xlayer","hyperevm"]},"chainId":{"enum":[4663,5042,988,196,999]},"environment":{"enum":["production","integration-test"]},"token":{"type":"string"},"factory":{"type":"string"},"pool":{"type":"string"},"positionId":{"type":"string"},"progress":{"type":"object","properties":{"bps":{"type":"integer","minimum":0,"maximum":10000},"percent":{"type":"number"},"graduated":{"type":"boolean"},"currentLiquidityWei":{"type":"string"},"athLiquidityWei":{"type":"string"},"targetLiquidityWei":{"type":"string"}}},"migration":{"type":"object","properties":{"required":{"const":false},"migrated":{"const":false},"status":{"const":"not-applicable"}}},"trading":{"type":"object","properties":{"venue":{"enum":["uniswap-v3","prjx-v3"]},"internalMarket":{"const":false},"bondingCurve":{"const":false},"pool":{"type":"string"},"pairToken":{"type":"string"},"pairSymbol":{"enum":["WETH","USDC","USDT0","HYPE","OKB","NVDA","SPY","SPCX","SNDK","CRCL","SKHY","IBM","ORCL","EWY","AVGO","DELL","AMD","PLTR","MU","MSFT","INTC","META","COIN","MRVL","AMZN","AAPL","HOOD","TSM","ASML","GOOGL","TSLA","IWM","QQQ","MSTR","POPMT","XIAO","GME","MEIT","TCENT","ICE"]},"pairDecimals":{"enum":[18,6]},"feeTier":{"const":10000}}},"restrictions":{"type":"object","properties":{"maxWalletBps":{"type":"integer","enum":[0,200]},"maxWalletPercent":{"type":"number","enum":[0,2]},"restrictionBlocks":{"type":"integer","enum":[0,3,30,50,300],"description":"HyperEVM uses 30 blocks; Arc, Stable, and X Layer use 0; Robinhood historical launches may use 0, 3, 50, or 300."},"endBlock":{"type":"integer"},"active":{"type":"boolean"},"initialBuyExempt":{"type":"boolean"}}}}},"Token":{"type":"object","properties":{"token":{"type":"string"},"pool":{"type":"string"},"deployer":{"type":"string"},"position_id":{"type":"string"},"name":{"type":["string","null"]},"symbol":{"type":["string","null"]},"image":{"type":["string","null"]},"marketCapEth":{"type":"string","description":"Current market cap in pair-token base units (18 WETH or 6 USDC decimals)"},"liquidityEth":{"type":"string","description":"Current pool pair-token balance in base units"},"poolBalanceEth":{"type":"string","description":"Current pair-token balance formatted for display"},"athPoolBalanceEth":{"type":"string","description":"All-time-high indexed pair-token balance; fee collection adjustments are intentionally ignored"},"targetLiquidityEth":{"type":"string","description":"Graduation target in pair-token base units"},"progressBps":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pool-balance progress; permanently 10000 after ATH reaches target"},"graduated":{"type":"boolean","description":"Derived from ATH pool pair-token balance; does not require a keeper transaction"}}}}}}