{"openapi":"3.1.0","info":{"title":"Roots API","version":"1.0.0","description":"Public XMR ROOTS data and an unsigned planting builder. No key is needed. Amounts are base units as decimal strings. Every transaction comes back unsigned: the wallet signs it, the API holds no key, signs nothing and sends nothing."},"servers":[{"url":"https://api.xmrroots.xyz"}],"paths":{"/v1/params":{"get":{"summary":"Everything a builder needs: program ids, quotes and pairs, fee split, mints.","responses":{"200":{"description":"Protocol parameters","headers":{"cache-control":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Params"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/coins":{"get":{"summary":"Coin list (public catalog).","parameters":[{"name":"pair","in":"query","required":false,"description":"wXMR, ROOTS, hSOL or a quote mint","schema":{"type":"string"}},{"name":"rewards","in":"query","required":false,"description":"creator or holders","schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"description":"mint (default), reserve or rewards","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"1 to 100, 50 by default","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"next from the previous page","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of coins","headers":{"cache-control":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoinList"}}}},"400":{"description":"invalid_param","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/coins/{mint}":{"get":{"summary":"One coin: pair, vault, rewards, liquidity, burned supply.","parameters":[{"name":"mint","in":"path","required":true,"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"}}],"responses":{"200":{"description":"One coin","headers":{"cache-control":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Coin"}}}},"400":{"description":"invalid_param","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/stats":{"get":{"summary":"The figures of xmrroots.xyz/stats.","responses":{"200":{"description":"Totals","headers":{"cache-control":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Stats"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/receipts":{"get":{"summary":"Buybacks, burns, payouts and liquidity with their transaction signatures.","parameters":[{"name":"kind","in":"query","required":false,"description":"Comma list of receipt kinds; payout matches both payout kinds","schema":{"type":"string"}},{"name":"coin","in":"query","required":false,"description":"Only receipts of this coin mint","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"1 to 100, 50 by default","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"next from the previous page","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of receipts, newest first","headers":{"cache-control":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReceiptList"}}}},"400":{"description":"invalid_param","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/monero-gf/receipts":{"get":{"summary":"XMR sent to the Monero General Fund: one receipt per bridge payout, with tx id, tx key and the check_tx_key verdict.","parameters":[{"name":"limit","in":"query","required":false,"description":"1 to 100, 50 by default","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"next from the previous page","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of General Fund receipts","headers":{"cache-control":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoneroGfReceiptList"}}}},"400":{"description":"invalid_param","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/health":{"get":{"summary":"Service health.","responses":{"200":{"description":"Healthy","headers":{"cache-control":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}},"503":{"description":"Snapshot missing or older than 5 minutes","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}},"/v1/plant/build":{"post":{"summary":"Build an unsigned planting transaction (wallet and mint key sign it).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildRequest"}}}},"responses":{"200":{"description":"Unsigned v0 transaction, simulated on mainnet","headers":{"cache-control":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildResponse"}}}},"400":{"description":"invalid_param","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"planting_closed, pair_closed or origin_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"mint_exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"payload_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"refused (simulation failed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_param","not_found","method_not_allowed","unsupported_media_type","payload_too_large","rate_limited","refused","mint_exists","planting_closed","pair_closed","monero_gf_closed","origin_not_allowed","unavailable","internal"]},"message":{"type":"string"}}}}},"MoneroGfParams":{"type":"object","additionalProperties":false,"required":["enabled","onChain","address","sources","minDonation","maxDonation","bridge","escrow","destinations","slice","switch","mode","relay","limits","ceilings","verification","notAffiliated"],"properties":{"enabled":{"type":"boolean"},"onChain":{"type":"boolean"},"address":{"type":"string","enum":["888tNkZrPN6JsEgekjMnABU4TBzc2Dt29EPAvkRxbANsAnjyPbb3iQ1YBRk1UXcdRsiKc9dhwMVgN5S9cQUiyoogDavup3H"]},"sources":{"type":"array","items":{"type":"string"}},"minDonation":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"maxDonation":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"bridge":{"type":"object","additionalProperties":false,"required":["program","feeBps","name"],"properties":{"program":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"feeBps":{"type":"integer"},"name":{"type":"string"}}},"escrow":{"type":["string","null"],"pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"destinations":{"type":"array","items":{"type":"string","enum":["creator","holders","monero-general-fund"]}},"slice":{"type":"string"},"switch":{"type":"string"},"mode":{"type":"string","enum":["relay","pda"],"description":"relay (default): a dedicated key is the bridge user, released only into its own request to the General Fund in the same transaction. pda: the program escrow is the bridge user."},"relay":{"type":["string","null"],"pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"limits":{"type":"object","additionalProperties":false,"required":["maxPerWithdrawal","dailyCap","spacingSeconds","source"],"properties":{"maxPerWithdrawal":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"dailyCap":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"spacingSeconds":{"type":"integer"},"source":{"type":"string","enum":["chain","default"],"description":"chain: set by the owner with set_monero_gf, inside the compiled ceilings."}}},"ceilings":{"type":"object","additionalProperties":false,"required":["maxPerWithdrawal","dailyCap","minSpacingSeconds","minWithdrawal"],"properties":{"maxPerWithdrawal":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"dailyCap":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"minSpacingSeconds":{"type":"integer"},"minWithdrawal":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."}}},"verification":{"type":"string"},"notAffiliated":{"type":"string"}}},"MoneroGfReceipt":{"type":"object","additionalProperties":false,"required":["nonce","record","requestSignature","requested","net","bridgeFee","completionSignature","completedAt","txId","txKey","address","monero","howToVerify"],"properties":{"nonce":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"record":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"requestSignature":{"type":["string","null"],"pattern":"^[1-9A-HJ-NP-Za-km-z]{64,88}$"},"requested":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"net":{"type":["string","null"],"pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"bridgeFee":{"type":["string","null"],"pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"completionSignature":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{64,88}$"},"completedAt":{"type":["string","null"],"format":"date-time"},"txId":{"type":"string","pattern":"^[a-f0-9]{64}$"},"txKey":{"type":"string","pattern":"^[a-f0-9]{64}$"},"address":{"type":"string"},"monero":{"type":"object","additionalProperties":false,"required":["status","received","confirmations","reason"],"properties":{"status":{"type":"string","enum":["verified","unverified","mismatch"]},"received":{"type":["string","null"],"pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"confirmations":{"type":["integer","null"]},"reason":{"type":["string","null"]}}},"howToVerify":{"type":"string"},"coins":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["coin","amount"],"properties":{"coin":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"amount":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."}}}},"attribution":{"type":"string","enum":["first-in-first-out"]},"unattributed":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."}}},"MoneroGfReceiptList":{"type":"object","additionalProperties":false,"required":["data","coins","flow","limits","next","total","address","notAffiliated","source","updatedAt"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MoneroGfReceipt"}},"coins":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["coin","amount","symbol"],"properties":{"coin":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"amount":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"symbol":{"type":["string","null"]}}}},"flow":{"type":"object","additionalProperties":false,"required":["escrow","inFlight"],"properties":{"escrow":{"type":["string","null"],"pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"inFlight":{"type":["object","null"],"additionalProperties":false,"required":["nonce","record","amount","open","requestedAt","requestSignature","coins"],"properties":{"nonce":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"record":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"amount":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"open":{"type":"boolean"},"requestedAt":{"type":"string","format":"date-time"},"requestSignature":{"type":["string","null"],"pattern":"^[1-9A-HJ-NP-Za-km-z]{64,88}$"},"coins":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["coin","amount"],"properties":{"coin":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"amount":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."}}}}}}}},"limits":{"type":"object","additionalProperties":false,"required":["maxPerWithdrawal","dailyCap","spacingSeconds","source"],"properties":{"maxPerWithdrawal":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"dailyCap":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"spacingSeconds":{"type":"integer"},"source":{"type":"string","enum":["chain","default"],"description":"chain: set by the owner with set_monero_gf, inside the compiled ceilings."}}},"next":{"type":["string","null"]},"total":{"type":"integer"},"address":{"type":"string"},"notAffiliated":{"type":"string"},"source":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"}}},"MoneroGfStats":{"type":"object","additionalProperties":false,"required":["enabled","address","receipts","verifiedReceipts","sentNet","verifiedReceived","escrow","inFlight","limits","notAffiliated"],"properties":{"enabled":{"type":"boolean"},"address":{"type":"string"},"receipts":{"type":"integer"},"verifiedReceipts":{"type":"integer"},"sentNet":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"verifiedReceived":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"escrow":{"type":["string","null"],"pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"inFlight":{"type":["object","null"],"additionalProperties":false,"required":["record","amount","open"],"properties":{"record":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"amount":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"open":{"type":"boolean"}}},"limits":{"type":"object","additionalProperties":false,"required":["maxPerWithdrawal","dailyCap","spacingSeconds","source"],"properties":{"maxPerWithdrawal":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"dailyCap":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"spacingSeconds":{"type":"integer"},"source":{"type":"string","enum":["chain","default"],"description":"chain: set by the owner with set_monero_gf, inside the compiled ceilings."}}},"notAffiliated":{"type":"string"}}},"Asset":{"type":"object","additionalProperties":false,"required":["symbol","mint","decimals"],"properties":{"symbol":{"type":"string"},"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"decimals":{"type":"integer"}}},"Quote":{"type":"object","additionalProperties":false,"required":["symbol","mint","decimals","name","kind","tokenProgram","rewardAsset","plantable"],"properties":{"symbol":{"type":"string"},"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"decimals":{"type":"integer"},"name":{"type":"string"},"kind":{"type":"string","enum":["wxmr","roots","lst","stock"]},"tokenProgram":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"rewardAsset":{"$ref":"#/components/schemas/Asset"},"plantable":{"type":"boolean"}}},"Params":{"type":"object","additionalProperties":false,"required":["network","api","programs","program","treasury","platformMint","lookupTables","mints","decimals","quotes","stocks","planting","split","moneroGf","updatedAt"],"properties":{"network":{"type":"string","enum":["mainnet-beta"]},"api":{"type":"object","additionalProperties":false,"required":["version","base","limits"],"properties":{"version":{"type":"string","enum":["v1"]},"base":{"type":"string"},"limits":{"type":"object","additionalProperties":false,"required":["reads","builds"],"properties":{"reads":{"type":"string"},"builds":{"type":"string"}}}}},"programs":{"type":"object","additionalProperties":false,"required":["rootsVault","pump","pumpSwap","token","token2022"],"properties":{"rootsVault":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"pump":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"pumpSwap":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"token":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"token2022":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"}}},"program":{"type":"object","additionalProperties":false,"required":["sha256","bytes","verified","config"],"properties":{"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"bytes":{"type":"integer"},"verified":{"type":"boolean"},"config":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"}}},"treasury":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"platformMint":{"type":["string","null"],"pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"lookupTables":{"type":"object","additionalProperties":false,"required":["protocol","roots","pairs"],"properties":{"protocol":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"roots":{"type":["string","null"],"pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"pairs":{"type":["string","null"],"pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"}}},"mints":{"type":"object","additionalProperties":false,"required":["wXMR","ROOTS","hSOL"],"properties":{"wXMR":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"ROOTS":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"hSOL":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"}}},"decimals":{"type":"object","additionalProperties":false,"required":["wXMR","ROOTS","hSOL","coin","sol","lp"],"properties":{"wXMR":{"type":"integer"},"ROOTS":{"type":"integer"},"hSOL":{"type":"integer"},"coin":{"type":"integer"},"sol":{"type":"integer"},"lp":{"type":"integer"}}},"quotes":{"type":"array","items":{"$ref":"#/components/schemas/Quote"}},"stocks":{"type":"object","additionalProperties":false,"required":["api","count","note"],"properties":{"api":{"type":"boolean","enum":[false]},"count":{"type":"integer"},"note":{"type":"string"}}},"planting":{"type":"object","additionalProperties":false,"required":["open","creatorFeeBps","name","ticker","uri","rewards","signers","mintKey"],"properties":{"open":{"type":"boolean"},"creatorFeeBps":{"type":"integer"},"name":{"type":"object","additionalProperties":false,"required":["maxBytes"],"properties":{"maxBytes":{"type":"integer"}}},"ticker":{"type":"object","additionalProperties":false,"required":["pattern"],"properties":{"pattern":{"type":"string"}}},"uri":{"type":"object","additionalProperties":false,"required":["maxBytes","schemes"],"properties":{"maxBytes":{"type":"integer"},"schemes":{"type":"array","items":{"type":"string"}}}},"rewards":{"type":"array","items":{"type":"string"}},"signers":{"type":"array","items":{"type":"string"}},"mintKey":{"type":"string"}}},"split":{"type":"object","additionalProperties":false,"required":["creatorFeeBps","ofCreatorFee","rewards","buyback","liquidity","treasury","pairCoins"],"properties":{"creatorFeeBps":{"type":"integer"},"ofCreatorFee":{"type":"object","additionalProperties":false,"required":["rewards","buyback","liquidity","treasury"],"properties":{"rewards":{"type":"integer"},"buyback":{"type":"integer"},"liquidity":{"type":"integer"},"treasury":{"type":"integer"}}},"rewards":{"type":"string"},"buyback":{"type":"string"},"liquidity":{"type":"string"},"treasury":{"type":"string"},"pairCoins":{"type":"string"}}},"moneroGf":{"$ref":"#/components/schemas/MoneroGfParams"},"updatedAt":{"type":"string","format":"date-time"}}},"Coin":{"type":"object","additionalProperties":false,"required":["mint","name","symbol","uri","image","description","listed","pair","rewardAsset","rewardsTo","coinAuthority","vault","supply","burned","liquidity","reserveCloseAt","moneroGf","updatedAt"],"properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"name":{"type":["string","null"]},"symbol":{"type":["string","null"]},"uri":{"type":["string","null"],"pattern":"^(https|ipfs|ar):"},"image":{"type":["string","null"],"pattern":"^(https|ipfs|ar):"},"description":{"type":["string","null"]},"listed":{"type":"boolean"},"pair":{"type":"object","additionalProperties":false,"required":["symbol","mint","decimals","kind"],"properties":{"symbol":{"type":"string"},"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"decimals":{"type":"integer"},"kind":{"type":"string","enum":["wxmr","roots","lst","stock"]}}},"rewardAsset":{"$ref":"#/components/schemas/Asset"},"rewardsTo":{"type":"string","enum":["creator","holders","monero-general-fund"]},"coinAuthority":{"type":["string","null"],"pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"vault":{"type":"object","additionalProperties":false,"required":["reserve","rewards","buyback","allocated","settled","operations","development","redeemed","nextEpoch"],"properties":{"reserve":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"rewards":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"buyback":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"allocated":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"settled":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"operations":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"development":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"redeemed":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"nextEpoch":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."}}},"supply":{"type":["string","null"],"pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"burned":{"type":["string","null"],"pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"liquidity":{"type":["object","null"],"additionalProperties":false,"required":["initialized","budget","quoteSpent","lpBurned"],"properties":{"initialized":{"type":"boolean"},"budget":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"quoteSpent":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"lpBurned":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."}}},"reserveCloseAt":{"type":["string","null"],"format":"date-time"},"moneroGf":{"type":"object","additionalProperties":false,"required":["destination","contributed"],"properties":{"destination":{"type":"string","enum":["rewards","monero-general-fund"]},"contributed":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."}}},"updatedAt":{"type":"string","format":"date-time"}}},"CoinList":{"type":"object","additionalProperties":false,"required":["data","next","total","updatedAt"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Coin"}},"next":{"type":["string","null"]},"total":{"type":"integer"},"updatedAt":{"type":"string","format":"date-time"}}},"Totals":{"type":"object","additionalProperties":false,"required":["reserve","rewards","buyback","allocated","settled","operations","development","redeemed","nextEpoch"],"properties":{"reserve":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"rewards":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"buyback":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"allocated":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"settled":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"operations":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"development":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"redeemed":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"nextEpoch":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."}}},"Stats":{"type":"object","additionalProperties":false,"required":["count","holderCoins","totals","treasury","outstandingRewards","totalsAsset","byQuote","pairs","liquidity","roots","automation","moneroGf","note","updatedAt"],"properties":{"count":{"type":"integer"},"holderCoins":{"type":"integer"},"totals":{"$ref":"#/components/schemas/Totals"},"treasury":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"outstandingRewards":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"totalsAsset":{"$ref":"#/components/schemas/Asset"},"byQuote":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["symbol","mint","decimals","count","totals"],"properties":{"symbol":{"type":"string"},"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"decimals":{"type":"integer"},"count":{"type":"integer"},"totals":{"$ref":"#/components/schemas/Totals"}}}},"pairs":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["symbol","mint","count"],"properties":{"symbol":{"type":"string"},"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"count":{"type":"integer"}}}},"liquidity":{"type":["object","null"],"additionalProperties":false,"required":["pool","lpMint","lpDecimals","lpBurned","communityCoins","missingLedgers","byQuote"],"properties":{"pool":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"lpMint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"lpDecimals":{"type":"integer"},"lpBurned":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"communityCoins":{"type":"integer"},"missingLedgers":{"type":"integer"},"byQuote":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["symbol","mint","decimals","budget","quoteSpent","lpBurned"],"properties":{"symbol":{"type":"string"},"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"decimals":{"type":"integer"},"budget":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"quoteSpent":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"lpBurned":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."}}}}}},"roots":{"type":["object","null"],"additionalProperties":false,"required":["mint","decimals","initialSupply","supply","burned"],"properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"decimals":{"type":"integer"},"initialSupply":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"supply":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"burned":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."}}},"automation":{"type":["object","null"],"additionalProperties":false,"required":["state","lastSuccessAt","counters"],"properties":{"state":{"type":"string","enum":["live","paused","simulation","disabled","unknown"]},"lastSuccessAt":{"type":["string","null"],"format":"date-time"},"counters":{"type":"object","additionalProperties":{"type":"integer"}}}},"moneroGf":{"type":["object","null"],"additionalProperties":false,"required":["enabled","address","receipts","verifiedReceipts","sentNet","verifiedReceived","escrow","inFlight","limits","notAffiliated"],"properties":{"enabled":{"type":"boolean"},"address":{"type":"string"},"receipts":{"type":"integer"},"verifiedReceipts":{"type":"integer"},"sentNet":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"verifiedReceived":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"escrow":{"type":["string","null"],"pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"inFlight":{"type":["object","null"],"additionalProperties":false,"required":["record","amount","open"],"properties":{"record":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"amount":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"open":{"type":"boolean"}}},"limits":{"type":"object","additionalProperties":false,"required":["maxPerWithdrawal","dailyCap","spacingSeconds","source"],"properties":{"maxPerWithdrawal":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"dailyCap":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"spacingSeconds":{"type":"integer"},"source":{"type":"string","enum":["chain","default"],"description":"chain: set by the owner with set_monero_gf, inside the compiled ceilings."}}},"notAffiliated":{"type":"string"}}},"note":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"}}},"MintAmount":{"type":"object","additionalProperties":false,"required":["mint","amount"],"properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"amount":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."}}},"Receipt":{"type":"object","additionalProperties":false,"required":["signature","slot","blockTime","kind","instruction","coins","burned","vaultOut","source"],"properties":{"signature":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{64,88}$"},"slot":{"type":"integer"},"blockTime":{"type":["string","null"],"format":"date-time"},"kind":{"type":"string","enum":["buyback","burn","liquidity","holder-payout","creator-payout","rewards-epoch","conversion","reserve-migration","redemption","monero-gf-request","monero-gf-cancel","monero-gf-share","treasury-buyback","treasury-burn"]},"instruction":{"type":["integer","null"]},"coins":{"type":"array","items":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"}},"burned":{"type":"array","items":{"$ref":"#/components/schemas/MintAmount"}},"vaultOut":{"type":"array","items":{"$ref":"#/components/schemas/MintAmount"}},"acquired":{"type":"array","items":{"$ref":"#/components/schemas/MintAmount"}},"payments":{"type":"integer"},"epoch":{"type":"object","additionalProperties":false,"required":["epoch","budget","snapshotSlot","manifest"],"properties":{"epoch":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"budget":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"snapshotSlot":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"manifest":{"type":["string","null"],"pattern":"^(https|ipfs|ar):"}}},"contributions":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["coin","amount"],"properties":{"coin":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"amount":{"type":"string","pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."}}}},"source":{"type":"string","enum":["chain","treasury-snapshot"]}}},"ReceiptList":{"type":"object","additionalProperties":false,"required":["data","next","total","index","updatedAt"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Receipt"}},"next":{"type":["string","null"]},"total":{"type":"integer"},"index":{"type":"object","additionalProperties":false,"required":["complete","scanned","pending","unreadable","truncated","source"],"properties":{"complete":{"type":"boolean"},"scanned":{"type":"integer"},"pending":{"type":"integer"},"unreadable":{"type":"integer"},"truncated":{"type":"boolean"},"source":{"type":"string"}}},"updatedAt":{"type":"string","format":"date-time"}}},"Health":{"type":"object","additionalProperties":false,"required":["ok","version","network","programVerified","snapshotAgeSeconds","updatedAt","receipts"],"properties":{"ok":{"type":"boolean"},"version":{"type":"string"},"network":{"type":"string"},"programVerified":{"type":"boolean"},"snapshotAgeSeconds":{"type":["integer","null"]},"updatedAt":{"type":["string","null"],"format":"date-time"},"receipts":{"type":"object","additionalProperties":false,"required":["complete","scanned","pending","truncated"],"properties":{"complete":{"type":"boolean"},"scanned":{"type":"integer"},"pending":{"type":"integer"},"truncated":{"type":"boolean"}}}}},"BuildRequest":{"type":"object","additionalProperties":false,"required":["wallet","mint","name","symbol","uri"],"properties":{"wallet":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"name":{"type":"string","maxLength":32},"symbol":{"type":"string","pattern":"^[A-Za-z0-9]{1,12}$"},"uri":{"type":"string","pattern":"^https://","maxLength":200},"pair":{"type":"string","enum":["wXMR","ROOTS","hSOL"],"default":"wXMR"},"rewards":{"type":"string","enum":["creator","holders","monero-general-fund"],"default":"creator","description":"Where the 0.80% (40% of the 2% creator fee) goes. monero-general-fund only when params.moneroGf.enabled; permanent."}}},"BuildResponse":{"type":"object","additionalProperties":false,"required":["transactions","simulation","coin","intent","signing","expiresAt"],"properties":{"transactions":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["transaction","encoding","version","signers","lookupTables","recentBlockhash","lastValidBlockHeight","size"],"properties":{"transaction":{"type":"string","contentEncoding":"base64"},"encoding":{"type":"string","enum":["base64"]},"version":{"type":"integer","enum":[0]},"signers":{"type":"array","items":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"}},"lookupTables":{"type":"array","items":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"}},"recentBlockhash":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"lastValidBlockHeight":{"type":"integer"},"size":{"type":"integer"}}}},"simulation":{"type":"object","additionalProperties":false,"required":["ok","unitsConsumed","solCostLamports","networkFeeLamports"],"properties":{"ok":{"type":"boolean","enum":[true]},"unitsConsumed":{"type":["integer","null"]},"solCostLamports":{"type":["string","null"],"pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."},"networkFeeLamports":{"type":["string","null"],"pattern":"^[0-9]{1,30}$","description":"Base units as a decimal string."}}},"coin":{"type":"object","additionalProperties":false,"required":["mint","coinAuthority","liquidityLedger","pair","rewardAsset"],"properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"coinAuthority":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"liquidityLedger":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"pair":{"$ref":"#/components/schemas/Asset"},"rewardAsset":{"$ref":"#/components/schemas/Asset"}}},"intent":{"type":"object","additionalProperties":false,"required":["wallet","mint","name","symbol","uri","pair","rewards"],"properties":{"wallet":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"name":{"type":"string"},"symbol":{"type":"string"},"uri":{"type":"string"},"pair":{"type":"string"},"rewards":{"type":"string"}}},"signing":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"}}}}}}