{"openapi":"3.1.0","info":{"title":"pegproof API","version":"1","description":"On-chain checks of Robinhood's 203 Stock Tokens on Robinhood Chain (chain id 4663). Paid routes use x402 (USDC on Base or Arbitrum One, no account, no key); on-chain observations, not financial advice. Full documentation: https://pegproof.com/docs","contact":{"email":"hello@pegproof.com"}},"servers":[{"url":"https://pegproof.com"}],"externalDocs":{"url":"https://pegproof.com/docs"},"x-discovery":{"ownershipProofs":["0x4122aaf54dbf1b25dadbb8b845527a0194d22d24884a5aad0a4c13e191ef5315103f49babadfd830ca1d3528bcab28e253a8c2cff1d4913e5a4495224b895c0a1c"]},"paths":{"/api/v1/token/{param}":{"get":{"operationId":"token","summary":"Check a Robinhood stock token before an agent buys, holds or accepts it: the contract Robinhood lists, or a known look-alike? Pass a ticker (NVDA) or a contract address on Robinhood Chain (4663)","description":"Check a Robinhood stock token before an agent buys, holds or accepts it: the contract Robinhood lists, or a known look-alike? Pass a ticker (NVDA) or a contract address on Robinhood Chain (4663). For a listed token: total supply, treasury balance, multiplier, ledger coverage, open integrity flags and the look-alikes pegproof knows of. For a look-alike address: which token it imitates. On-chain observations reconstructed from chain event logs, not financial advice.","parameters":[{"name":"param","in":"path","required":true,"description":"A registry ticker (such as NVDA) or the token contract address (0x followed by 40 hex digits).","schema":{"type":"string"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.002"}},"responses":{"200":{"description":"The data, in pegproof's JSON envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A malformed parameter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required: the x402 v2 terms are in the PAYMENT-REQUIRED header (USDC on Base or Arbitrum One)."},"404":{"description":"No tracked token has this ticker or address.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many paying requests from this client; see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/token/{param}/events":{"get":{"operationId":"token_events","summary":"Audit when a Robinhood stock token's supply was created or destroyed: every mint, burn, issue, redeem and transfer, newest first","description":"Audit when a Robinhood stock token's supply was created or destroyed: every mint, burn, issue, redeem and transfer, newest first. Pass a ticker (NVDA) or a contract address on Robinhood Chain (4663); page through with the opaque cursor (keyset on block and log index). On-chain observations reconstructed from chain event logs, not financial advice.","parameters":[{"name":"param","in":"path","required":true,"description":"A registry ticker (such as NVDA) or the token contract address (0x followed by 40 hex digits).","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size, 1-100 (default 20); values above 100 are clamped, never rejected.","schema":{"type":"string"}},{"name":"cursor","in":"query","required":false,"description":"Opaque pagination cursor from a previous page's data.next_cursor; omit (or leave empty) for the first page.","schema":{"type":"string"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.005"}},"responses":{"200":{"description":"The data, in pegproof's JSON envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A malformed parameter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required: the x402 v2 terms are in the PAYMENT-REQUIRED header (USDC on Base or Arbitrum One)."},"404":{"description":"No tracked token has this ticker or address, or it is a known impostor with no event ledger.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many paying requests from this client; see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/incidents":{"get":{"operationId":"incidents","summary":"Monitor all of Robinhood's stock tokens in one call: integrity incidents, newest first","description":"Monitor all of Robinhood's stock tokens in one call: integrity incidents, newest first. An incident is a token whose supply or treasury balance diverged from its full mint/burn ledger, or a ledger rebaseline, with its type, status and block window. type=integrity (default), operational (collector errors) or all. On-chain observations and reconciliation findings, not financial advice.","parameters":[{"name":"limit","in":"query","required":false,"description":"Page size, 1-100 (default 20); values above 100 are clamped, never rejected.","schema":{"type":"string"}},{"name":"type","in":"query","required":false,"description":"Optional. 'integrity' (default: r0a_divergence, r0b_divergence, rebaseline), 'operational' (collector_error) or 'all'. Any other value is rejected with 400, never replaced by the default.","schema":{"type":"string"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.005"}},"responses":{"200":{"description":"The data, in pegproof's JSON envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A malformed parameter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required: the x402 v2 terms are in the PAYMENT-REQUIRED header (USDC on Base or Arbitrum One)."},"429":{"description":"Too many paying requests from this client; see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/snapshot/{param}":{"get":{"operationId":"snapshot","summary":"Verify a Robinhood stock token's state at a past block: total supply, treasury balance and multiplier from the newest confirmed snapshot at or before it","description":"Verify a Robinhood stock token's state at a past block: total supply, treasury balance and multiplier from the newest confirmed snapshot at or before it. Use it to check a historical position, report or trade against what was on-chain then. Pass a ticker or contract address and block=<number>. On-chain observations reconstructed from chain event logs, not financial advice.","parameters":[{"name":"param","in":"path","required":true,"description":"A registry ticker (such as NVDA) or the token contract address (0x followed by 40 hex digits).","schema":{"type":"string"}},{"name":"block","in":"query","required":true,"description":"Required. Non-negative integer block number in decimal digits; the snapshot returned is the newest one at or before it.","schema":{"type":"string"}}],"x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.01"}},"responses":{"200":{"description":"The data, in pegproof's JSON envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A malformed parameter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required: the x402 v2 terms are in the PAYMENT-REQUIRED header (USDC on Base or Arbitrum One)."},"404":{"description":"No tracked token has this ticker or address, or it is a known impostor with no balance history.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many paying requests from this client; see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/address/{address}":{"get":{"operationId":"address","summary":"Free: is this Robinhood Chain address a Robinhood stock token, a known look-alike, or unknown?","description":"Free, no payment. `status` is `official` (in the registry of Robinhood's Stock Tokens), `look-alike` (a catalogued copy, with what it imitates) or `unknown`; an address another issuer lists in its own contract list is `unknown` with `issuer_list`. See /docs#address-lookup.","parameters":[{"name":"address","in":"path","required":true,"description":"0x followed by 40 hex digits, either case.","schema":{"type":"string"}}],"security":[],"responses":{"200":{"description":"The answer; every well-formed address gets a 200.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressAnswer"}}}},"400":{"description":"Not 0x followed by 40 hex digits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"Envelope":{"type":"object","required":["data","state_as_of_block","state_as_of_time","ledger_as_of_block","ledger_coverage","market_state","flags"],"properties":{"data":{"description":"The route's payload; /docs describes each."},"state_as_of_block":{"type":["integer","null"],"description":"Block of the balance figures; null when not measured yet."},"state_as_of_time":{"type":["string","null"],"description":"Time of that block (ISO 8601)."},"ledger_as_of_block":{"type":"integer","description":"How far the event ledger has been ingested."},"ledger_coverage":{"type":"object","properties":{"h24":{"enum":["complete","partial","gap"]},"d7":{"enum":["complete","partial","gap"]}}},"market_state":{"enum":["open","closed","holiday"]},"flags":{"type":"array","items":{"type":"string"}}}},"AddressAnswer":{"type":"object","required":["address","chain_id","status","registry_as_of","robinhood_list_checked","source"],"properties":{"address":{"type":"string","description":"Checksummed."},"chain_id":{"const":4663},"status":{"enum":["official","look-alike","unknown"]},"catalogued":{"type":"boolean"},"ticker":{"type":["string","null"]},"name":{"type":["string","null"]},"imitates":{"type":"object","properties":{"ticker":{"type":"string"},"address":{"type":"string"},"issuer":{"type":"string"}}},"issuer_list":{"type":"object","properties":{"issuer":{"type":"string"},"ticker":{"type":"string"},"name":{"type":"string"},"source":{"type":"string"},"as_of":{"type":"string"}}},"registry_as_of":{"type":"string"},"robinhood_list_checked":{"type":["object","null"]},"source":{"type":"string"},"page":{"type":"string"},"note":{"type":"string"}}}}}}