{"openapi":"3.1.0","info":{"title":"TrueSahm public read API","version":"0.1.0","summary":"Tokenized US stocks on BNB Smart Chain, read layer (P1).","description":"The public read surface of the platform (ARCHITECTURE §3.6 \"Public API\", PRD §6.15). One contract feeds the REST\nserver (`apps/api`), the MCP server (`apps/mcp`, one tool per operation) and the generated SDKs (`packages/sdk`).\n\nRules every response follows:\n- Shares are the unit of record. Every price compared across wrappers is per share.\n- Every value carries provenance: its source, when it was observed, its age and a label (OBSERVED, MODEL, ...).\n- Binance `referencePrice` is derived from the token's own price and is never offered as a reference.\n- Raw third-party reference values are shown only where the rights matrix allows (ARCHITECTURE §6.16); otherwise\n  they are redacted with the rule that redacted them. Numbers we derive from our own quotes are ours.\n- Every error is typed with a stable code. Upstream Binance failures carry the Binance code and catalog category.\n- Nothing in this API buys, sells, signs a transaction or moves funds. Previews are simulations.\n\nMoney and ratios are decimal strings, never JSON numbers: USD has exactly 6 decimals, ratios 18, shares 18, basis\npoints 2.\n","license":{"name":"Proprietary"}},"servers":[{"url":"http://localhost:8787","description":"Local development"}],"tags":[{"name":"companies","description":"Companies and the wrappers that deliver them."},{"name":"truth","description":"Market clock, reference observations and fair value."},{"name":"premium","description":"Executable premium from the quote tape."},{"name":"preview","description":"Exact simulated outcomes. Nothing is bought."},{"name":"verdict","description":"Verdict evaluation of a supplied route snapshot."},{"name":"platform","description":"Eligibility, registry completeness and data-source health."},{"name":"accuracy","description":"Our own numbers graded against what happened afterwards."},{"name":"identity","description":"Whether a token, link or ticker is the issuer's genuine contract. Identity only, never advice."},{"name":"shariah","description":"Shariah screens of a company against a named methodology. Information, not a fatwa."},{"name":"execution","description":"Intents from draft to a reconciled fill. Agents draft and preflight; owners confirm. Paper for everyone."},{"name":"automation","description":"Themes, baskets, Autopilot, Storm Season, the stocks-and-crypto allocator and parking. Previews, replays and drafts; paper on MCP."}],"x-sx-contract":{"errorCodes":{"VALIDATION_FAILED":400,"NOT_FOUND":404,"COMPANY_NOT_FOUND":404,"INSTRUMENT_NOT_FOUND":404,"AMBIGUOUS_INSTRUMENT":409,"ELIGIBILITY_EDUCATION_ONLY":403,"ELIGIBILITY_COUNTRY_UNKNOWN":403,"ELIGIBILITY_PROHIBITED":451,"RATE_LIMITED":429,"REGISTRY_UNAVAILABLE":503,"TAPE_UNAVAILABLE":503,"UPSTREAM_UNAVAILABLE":503,"UPSTREAM_REJECTED":502,"EDGE_HALTED":503,"INTERNAL_ERROR":500,"PAYMENT_REQUIRED":402,"PAYMENT_INVALID":402,"PAYMENT_SETTLEMENT_FAILED":402,"PAYMENTS_UNAVAILABLE":503,"INTENT_NOT_FOUND":404,"INTENT_STATE_CONFLICT":409,"IDEMPOTENCY_CONFLICT":422,"CONFIRM_TOKEN_INVALID":403,"CONFIRM_TOKEN_EXPIRED":410,"CONFIRM_TOKEN_REPLAYED":409,"OWNER_SIGNATURE_REQUIRED":403,"OWNER_SIGNATURE_INVALID":403,"SIGNED_TX_MISMATCH":422,"STEP_EXPIRED":410,"DOUBLE_SUBMIT":409,"POLICY_INVALID":422,"CUSTODY_NOT_AVAILABLE":501,"EXECUTION_UNAVAILABLE":503},"errorCatalog":{"VALIDATION_FAILED":{"meaning":"An argument, the body or a header failed the contract.","fix":"Read error.details (path and reason) and the tool's input schema (sx_discover), then send corrected arguments. The same request will fail again."},"NOT_FOUND":{"meaning":"No route or tool by that name.","fix":"Check the path or tool name against this catalog."},"COMPANY_NOT_FOUND":{"meaning":"The ticker is not in the asset registry.","fix":"Search with sx_list_companies (q) and use a ticker it returns."},"INSTRUMENT_NOT_FOUND":{"meaning":"The named wrapper (issuer or address) does not deliver this company.","fix":"Read the company's instruments with sx_get_company and pass one of their issuers or addresses."},"AMBIGUOUS_INSTRUMENT":{"meaning":"The company has more than one wrapper and the call named none.","fix":"Pass issuer (bstock, ondo or xstock) or the wrapper's contract address."},"ELIGIBILITY_EDUCATION_ONLY":{"meaning":"The caller's market is education-only: prices, previews and verdicts are not served there.","fix":"Nothing to retry. error.education lists what can be read. Hosted MCP decides from the connection's country; stdio from SX_MCP_COUNTRY."},"ELIGIBILITY_COUNTRY_UNKNOWN":{"meaning":"The caller's country could not be determined, so gated operations fail closed.","fix":"Call from a connection whose country resolves, or on stdio set SX_MCP_COUNTRY as the operator's attestation of the end user's country."},"ELIGIBILITY_PROHIBITED":{"meaning":"The caller's market is prohibited for this product.","fix":"None: this is a legal boundary, not an error to work around."},"RATE_LIMITED":{"meaning":"Too many requests of this rate class from this client.","fix":"Wait error.retryAfterSec seconds, then retry."},"REGISTRY_UNAVAILABLE":{"meaning":"The asset registry snapshot is not loaded.","fix":"Retry later; sx_get_status names the source and its age."},"TAPE_UNAVAILABLE":{"meaning":"The quote tape (ClickHouse) did not answer or is not configured.","fix":"Retry when error.retryable is true. Tools that do not read the tape (company, clock, token check) still answer."},"UPSTREAM_UNAVAILABLE":{"meaning":"A dependency (Binance, a BNB Smart Chain RPC, or the API behind the MCP server) did not answer.","fix":"Retry with backoff when error.retryable is true; error.upstream names the provider and its code."},"UPSTREAM_REJECTED":{"meaning":"Binance answered this request with a business error.","fix":"Read error.upstream (code, category, action); the Binance codes are listed in this catalog under upstream."},"EDGE_HALTED":{"meaning":"Binance calls are halted after a region or abuse signal (Binance 40301-40304).","fix":"Nothing to retry until the operator clears the halt. Tools that do not call Binance still answer."},"INTERNAL_ERROR":{"meaning":"A fault on our side.","fix":"Retry once; if it persists, report error.message with meta.requestId."},"PAYMENT_REQUIRED":{"meaning":"The call is paid over b402 and carried no payment. Nothing was charged; the body carries a free preview and the payment requirements.","fix":"Sign one entry of payment.accepts (x402 v2, scheme exact) and send the same call again with it: HTTP header PAYMENT-SIGNATURE (base64 JSON) or MCP _meta[\"x402/payment\"]."},"PAYMENT_INVALID":{"meaning":"The payment was malformed, did not match a requirement we issued, or B402 refused it. Nothing was charged.","fix":"Read error.details, then sign a fresh payment for one entry of payment.accepts exactly as issued."},"PAYMENT_SETTLEMENT_FAILED":{"meaning":"Settlement did not complete, so nothing was delivered.","fix":"Send the same payment again: one signed authorization settles at most once, and a broadcast transaction is reconciled."},"PAYMENTS_UNAVAILABLE":{"meaning":"Paid calls cannot be taken right now: b402 is not enabled on this server or its facilitator is down. Nothing was charged.","fix":"Use the free form of the call (for example sx_check_token without mode deep), or retry later when error.retryable is true."},"INTENT_NOT_FOUND":{"meaning":"No intent with that id.","fix":"Draft one with sx_draft_intent, or check the intentId returned by it."},"INTENT_STATE_CONFLICT":{"meaning":"The intent is not in a state that allows this step (for example, confirming one that is not PREFLIGHTED), or it changed while the request ran.","fix":"Read it with sx_get_intent and follow data.next."},"IDEMPOTENCY_CONFLICT":{"meaning":"This account already used the clientIntentId for a different intent.","fix":"Use a new clientIntentId, or send exactly the original body to get the original intent back."},"CONFIRM_TOKEN_INVALID":{"meaning":"The confirm token is malformed, signed by another key, or bound to another intent, preflight or price envelope.","fix":"Run sx_preflight_intent again and confirm with the token it returns."},"CONFIRM_TOKEN_EXPIRED":{"meaning":"The confirm token expired before it was used.","fix":"Run sx_preflight_intent again: a fresh quote, Verdict and token."},"CONFIRM_TOKEN_REPLAYED":{"meaning":"The confirm token was already used. Tokens are single use.","fix":"Read the intent with sx_get_intent; it is already confirmed."},"OWNER_SIGNATURE_REQUIRED":{"meaning":"A key other than the owner's would sign (a keeper, or a development wallet held by this server), so the token alone is not the owner's consent.","fix":"Have the owner sign the EIP-712 ConfirmIntent message (domain SX Confirm v1, chain 56) over intentHash, preflightHash, envelopeHash and expiresAt, and send it as ownerSignature."},"OWNER_SIGNATURE_INVALID":{"meaning":"The owner's signature does not recover to the account's owner, or it has expired.","fix":"Sign ConfirmIntent with the owner key over the values of the current preflight."},"SIGNED_TX_MISMATCH":{"meaning":"The signed transaction is not exactly the prepared one (chain, to, data, value, nonce, gas or gas price), or another key signed it. Nothing was sent.","fix":"Sign data.next.tx exactly as returned, with the account's key."},"STEP_EXPIRED":{"meaning":"The prepared transaction expired before it was signed. Nothing was sent.","fix":"Call sx_prepare_intent_step for a fresh one."},"DOUBLE_SUBMIT":{"meaning":"A signed transaction for this step is already in flight; it is never replaced while it can still land.","fix":"Read the intent with sx_get_intent and wait for the chain."},"POLICY_INVALID":{"meaning":"The mandate is out of range or its signature does not recover to its owner.","fix":"Fix the field named in the message and have the owner sign the mandate again."},"CUSTODY_NOT_AVAILABLE":{"meaning":"That custody mode cannot execute in this deployment.","fix":"Read sx_custody_modes for the reason and what would enable it; paper mode (custody P) is open to everyone."},"EXECUTION_UNAVAILABLE":{"meaning":"The execution runtime is not configured on this server (no Binance edge, ledger or RPC).","fix":"Retry later, or use a deployment where sx_custody_modes lists an available mode."}}},"paths":{"/v1/eligibility":{"get":{"operationId":"getEligibility","tags":["platform"],"summary":"The caller's market tier and what it allows.","description":"Tier per PRD §4.3 from the request's country (CDN header). Unknown countries fail closed for prices,\npreviews and verdicts. Always answered, so a refusal elsewhere can be explained.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"allow"},"rateClass":"read","mcp":{"tool":"sx_get_eligibility","resident":false,"title":"Market eligibility of the caller"},"examples":[{"summary":"The caller's market tier and what it allows","arguments":{}}]},"responses":{"200":{"description":"The eligibility decision.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Eligibility"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/companies":{"get":{"operationId":"listCompanies","tags":["companies"],"summary":"List or search companies (exposures) and their wrappers.","description":"Companies come from the AssetRegistry snapshot (completeness-checked union of Binance RWA sources). `q`\nmatches the ticker by prefix or the company name by substring, case-insensitively.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_list_companies","resident":true,"title":"List or search companies"},"examples":[{"summary":"Search by ticker prefix or name","arguments":{"q":"NVDA"}},{"summary":"Companies with a bStock wrapper","arguments":{"issuer":"bstock","limit":20}}]},"parameters":[{"name":"q","in":"query","required":false,"description":"Ticker prefix or company-name substring.","schema":{"type":"string","minLength":1,"maxLength":64}},{"name":"issuer","in":"query","required":false,"description":"Only companies with at least one wrapper from this issuer.","schema":{"$ref":"#/components/schemas/Issuer"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["EQ","ETF"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from `nextCursor`.","schema":{"type":"string","pattern":"^[0-9]{1,6}$"}}],"responses":{"200":{"description":"A page of companies.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/CompanyList"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/companies/{ticker}":{"get":{"operationId":"getCompany","tags":["companies"],"summary":"One company with every wrapper, its share ratio, profile and issuer cards.","description":"Instruments per issuer with the full-precision shares-per-token ratio read from chain (bStock\n`uiMultiplier`, Ondo SyntheticSharesOracle) and corroborated against Binance `/rwa/tokens` from the tape.\nAn xStocks token is one share: its Backed multiplier rescales balances for dividends and splits, so the\nratio is 1, read against the token's `getCurrentMultiplier()` (source `xstocks.balanceIsShares`).\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_get_company","resident":true,"title":"Company detail with wrappers and share ratios"},"examples":[{"summary":"NVIDIA with every wrapper and its shares-per-token ratio","arguments":{"ticker":"NVDA"}}]},"x-binance":{"endpoints":["GET /api/v1/dex/market/rwa/underlying-profile"],"lane":"L2_AGENT","cacheSeconds":21600},"parameters":[{"$ref":"#/components/parameters/Ticker"}],"responses":{"200":{"description":"The company.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/CompanyDetail"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/companies/{ticker}/clock":{"get":{"operationId":"getClock","tags":["truth"],"summary":"The three-layer market clock for one company, per wrapper.","description":"`session = most_restrictive(exchange, issuer, route)` (ARCHITECTURE §5.2). The exchange layer folds the NYSE\ncalendar with the equity stream's market phase; the issuer layer is Binance RWA `statusInfo`; the route layer\nis what our own quotes last proved executable. All three are shown.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_get_clock","resident":true,"title":"Market clock (exchange, issuer, route)"},"examples":[{"summary":"Is Tesla tradable right now, per wrapper","arguments":{"ticker":"TSLA"}}]},"parameters":[{"$ref":"#/components/parameters/Ticker"}],"responses":{"200":{"description":"The clock.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Clock"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/companies/{ticker}/references":{"get":{"operationId":"getReferences","tags":["truth"],"summary":"Reference observations by independence group, and fair value.","description":"G1 Binance spot bStock book (per share), G2 trade[XYZ] HIP-3 oracle and impact mid, G5 Binance US-equity\nstream (from the recorder tape). Each observation says whether it counts as OBSERVED under its group's\nfreshness rule. Fair value is OBSERVED in a regular session with a fresh print, otherwise MODEL (graded\nensemble), otherwise NONE with reasons. Raw values are redacted where the rights matrix denies display.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_get_references","resident":true,"title":"Reference observations and fair value"},"examples":[{"summary":"Independent prices and fair value for NVIDIA","arguments":{"ticker":"NVDA"}}]},"parameters":[{"$ref":"#/components/parameters/Ticker"}],"responses":{"200":{"description":"Observations and fair value.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/References"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/companies/{ticker}/premium":{"get":{"operationId":"getPremium","tags":["premium"],"summary":"Executable per-share premium by issuer x size x session against a named reference.","description":"Computed from the quote tape with exact integer arithmetic (`@sx/tape`): executable per-share price of each\nrecorded quote versus the chosen reference at quote time. Signed: for a buy, positive means paying above the\nreference. Never against Binance `referencePrice`. An empty bucket is reported as absent, never as zero.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_get_premium","resident":true,"title":"Executable premium by issuer, size and session"},"examples":[{"summary":"What buyers paid over the HIP-3 oracle in the last day","arguments":{"ticker":"NVDA","reference":"hip3_oracle","side":"buy","windowHours":24}},{"summary":"Sell side over a week","arguments":{"ticker":"AAPL","side":"sell","windowHours":168}}]},"parameters":[{"$ref":"#/components/parameters/Ticker"},{"name":"reference","in":"query","required":false,"description":"The reference to measure against. Default `hip3_oracle` (outside the Binance family).","schema":{"$ref":"#/components/schemas/ReferenceKind","default":"hip3_oracle"}},{"name":"side","in":"query","required":false,"schema":{"type":"string","enum":["buy","sell"],"default":"buy"}},{"name":"windowHours","in":"query","required":false,"description":"Look-back window ending now.","schema":{"type":"integer","minimum":1,"maximum":744,"default":24}},{"name":"maxRefAgeSec","in":"query","required":false,"description":"Exclude quotes whose reference was older than this at quote time.","schema":{"type":"integer","minimum":1,"maximum":86400}}],"responses":{"200":{"description":"Premium buckets.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Premium"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/previews/buy":{"post":{"operationId":"previewBuy","tags":["preview"],"summary":"Exact simulated outcome of a buy. Nothing is bought.","description":"Binance `/quote` and `/swap` build real calldata, then Binance `/simulate` (BNB input, from a verified funded\npublic holder) or a local fork of BSC mainnet (USDT input) executes it. Every number comes from observed\nbalance changes. A preview that cannot be produced is a typed failure with the reason (and the Binance code\nwhen Binance refused), never a default number. Previews are expensive: they draw from the edge's L1 lane and\nare capped per client.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"preview","mcp":{"tool":"sx_preview_buy","resident":true,"title":"Preview a buy (simulation only)","idempotent":false},"examples":[{"summary":"Exact simulated outcome of $100 of NVIDIA via bStock, paid in BNB","arguments":{"ticker":"NVDA","issuer":"bstock","amountUsd":"100","inputToken":"BNB"}}],"payment":{"priceUsd":"0.02","delivers":"A fresh quote simulated for exactly your amount: shares, token cost, network fee, all-in price per share.","surfaces":["mcp_sdk"],"offline":"serve"}},"x-binance":{"endpoints":["GET /api/v1/dex/aggregator/quote","GET /api/v1/dex/aggregator/swap","POST /api/v1/dex/pre-transaction/simulate"],"lane":"L1_PREVIEW","errorCategories":["QUOTE","QUOTE_EXPIRED","SWAP","EQUITY_TOKEN","RATE_LIMIT","REGION","SERVER"]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewBuyRequest"}}}},"responses":{"200":{"description":"A typed outcome. `outcome` is SUCCESS or FAILURE.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PreviewOutcome"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/verdicts/evaluate":{"post":{"operationId":"evaluateVerdict","tags":["verdict"],"summary":"Evaluate a supplied route snapshot with the Verdict rules.","description":"Pure evaluation (`@sx/verdict`, ARCHITECTURE §5.1) of the snapshot you send: two axes (fair value and\nagreement of independent observed prices), size ceiling, simulation and hazard checks. Signed as EIP-712 with\nthe development key when the server has one (status SIGNED_DEV_KEY, never the production Verdict signer);\notherwise returned unsigned and labelled UNVERIFIED.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"verdict","mcp":{"tool":"sx_evaluate_verdict","resident":true,"title":"Evaluate a Verdict for a route snapshot"},"examples":[{"summary":"Evaluate a recorded route snapshot","arguments":{"snapshot":{"ticker":"NVDA","session":"OFFHOURS_WEEKEND","issuer":"bstock","side":"BUY","route":{"perSharePrice":{"known":true,"value":"100"},"makerIds":["Kipseli"],"routeHash":"0x0000000000000000000000000000000000000000000000000000000000000001","quoteHash":"0x0000000000000000000000000000000000000000000000000000000000000002","quotedAtMs":1791699999000,"validUntilMs":1791700020000},"observations":[{"group":"G1_CEX_BOOK","source":"G1-src","price":"100","observedAtMs":1791700000000,"spreadBpsX100":"43"},{"group":"G2_HIP3","source":"G2-src","price":"100","observedAtMs":1791700000000}],"fairValue":{"price":"100","label":"MODEL","model":"hip3-anchored","bandBpsX100":"10000","inputsHash":"0x0000000000000000000000000000000000000000000000000000000000000007"},"nowMs":1791700000000,"sizeUsd":"1000","sizeCeiling":{"known":true,"value":"5000"},"amountIn":{"raw":"1000000000000000000000","decimals":18},"tokenOutDecimals":18,"ratio":{"known":true,"value":"1.000778223752807865"},"simulation":{"status":"SUCCESS","simHash":"0x0000000000000000000000000000000000000000000000000000000000000003","quotedOut":"1000000","simulatedOut":"1000000","allowanceExcess":false},"hazards":{"honeypot":false,"taxRateBpsX100":"0","notAShare":false,"assetPaused":false,"multiplierActivationsMs":[],"ratioDisagree":false,"ondoOffhoursAboveSize":false},"nonBlocking":{"singleVenue":false,"clockDisagree":false,"rpcDegraded":false}}}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerdictRequest"}}}},"responses":{"200":{"description":"The evaluation and its signature status.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/VerdictResponse"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/registry/completeness":{"get":{"operationId":"getRegistryCompleteness","tags":["platform"],"summary":"How complete the asset registry is, per issuer.","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_get_registry_completeness","resident":false,"title":"Asset registry completeness"},"examples":[{"summary":"How complete the token list is, per issuer","arguments":{}}]},"responses":{"200":{"description":"The last completeness report and the snapshot's age.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/RegistryCompleteness"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/status":{"get":{"operationId":"getStatus","tags":["platform"],"summary":"Health and freshness of every data source.","description":"Recorder freshness from the tape (probe quotes, issuer status, equity stream, HIP-3, CEX book), the\nregistry snapshot age, the reference providers and the Binance edge (halt state, budget use).\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"allow"},"rateClass":"read","mcp":{"tool":"sx_get_status","resident":true,"title":"Data-source health"},"examples":[{"summary":"Health and freshness of every data source","arguments":{}}]},"responses":{"200":{"description":"Status of each source.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Status"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/premium":{"get":{"operationId":"getPremiumMatrix","tags":["premium"],"summary":"Executable premium for every recorded company in one call, with a price check per bucket.","description":"The Weekend Truth matrix: the same buckets as getPremium (company x issuer x size x session, exact integer\narithmetic in `@sx/tape`) for every ticker the probe records, plus a price check per bucket against the\nPROVISIONAL Verdict thresholds (`@sx/verdict` DEFAULT_THRESHOLDS). The price check judges one axis only (the\nexecutable per-share price against the chosen reference). It is not a Verdict: agreement of independent\nreferences, size ceilings and a simulation are not part of it. An empty bucket is absent, never zero.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_get_premium_matrix","resident":false,"title":"Executable premium for every recorded company"},"examples":[{"summary":"Premium for three companies in one call","arguments":{"tickers":"NVDA,TSLA,AAPL"}}]},"parameters":[{"name":"tickers","in":"query","required":false,"description":"Comma-separated tickers. Default every ticker with quotes in the window.","schema":{"type":"string","pattern":"^[A-Za-z0-9.\\-]{1,16}(,[A-Za-z0-9.\\-]{1,16}){0,49}$"}},{"name":"reference","in":"query","required":false,"description":"The reference to measure against. Default `hip3_oracle` (outside the Binance family).","schema":{"$ref":"#/components/schemas/ReferenceKind","default":"hip3_oracle"}},{"name":"side","in":"query","required":false,"schema":{"type":"string","enum":["buy","sell"],"default":"buy"}},{"name":"windowHours","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":744,"default":24}},{"name":"maxRefAgeSec","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":86400}}],"responses":{"200":{"description":"The matrix.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PremiumMatrix"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/makers":{"get":{"operationId":"getMakerConcentration","tags":["premium"],"summary":"Who sets the price, per issuer, from the best routes our probe recorded.","description":"For each issuer, the share of best buy routes (Binance aggregator `isBest`) in which each market maker or pool\ntook part, over the window. RFQ market makers are the hops Binance names \"Rfq <maker>\"; every other hop is a\npool. One route can include several makers, so shares do not sum to 100%.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"allow","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_get_maker_concentration","resident":false,"title":"Maker concentration of best routes"},"examples":[{"summary":"Who set the best buy price in the last day","arguments":{"side":"buy","windowHours":24}}]},"parameters":[{"name":"side","in":"query","required":false,"schema":{"type":"string","enum":["buy","sell"],"default":"buy"}},{"name":"windowHours","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":744,"default":24}}],"responses":{"200":{"description":"Maker shares per issuer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/MakerConcentration"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/companies/{ticker}/multipliers":{"get":{"operationId":"getMultipliers","tags":["companies"],"summary":"Current and announced share multipliers per wrapper (dividends paid in shares).","description":"Read from BSC by `@sx/shares`: bStock `uiMultiplier` and `pendingMultiplier` (scheduled change with its\neffective time), Ondo SyntheticSharesOracle `getSValue` and `assetData` (corporate action pending at unpause).\nxStocks: `getCurrentMultiplier()` confirms the contract; the ratio is always 1 share per token, so nothing is\never pending for it (a multiplier change rescales balances instead).\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_get_multipliers","resident":false,"title":"Share multipliers and announced changes"},"examples":[{"summary":"NVIDIA share multipliers and announced changes","arguments":{"ticker":"NVDA"}}]},"parameters":[{"$ref":"#/components/parameters/Ticker"}],"responses":{"200":{"description":"Multipliers per wrapper.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Multipliers"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/addresses/{address}/holdings":{"get":{"operationId":"getHoldings","tags":["companies"],"summary":"Shares held by any BSC address, across every issuer, valued at the real price.","description":"One Multicall3 read pinned to one block (`@sx/shares` holdings) over every bStock and Ondo wrapper in the\nregistry: token balance, share ratio, share-equivalents. Companies are valued at fair value (`@sx/reference`)\nwhere it can be served; otherwise the value is absent with the reason. xStocks are not read here (no\nexecutable liquidity on BSC); each is one share per token.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_get_holdings","resident":false,"title":"Shares held by an address"},"examples":[{"summary":"Shares held by an address across issuers","arguments":{"address":"0x31a7b23ee857e1ddcffe7cac2918af2e1999c7ce"}}]},"parameters":[{"$ref":"#/components/parameters/AddressPath"}],"responses":{"200":{"description":"Holdings in shares.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Holdings"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/addresses/{address}/overpay":{"get":{"operationId":"getOverpayAudit","tags":["premium"],"summary":"What an address paid per share on its stock-token trades, against the real price at the time.","description":"Trades from Binance Address Portfolio `dex-history` (BSC), kept when the token is a bStock or Ondo wrapper in\nthe registry. Per-share price = (valueUsd / amount) / share ratio. The reference at trade time comes from the\nrecorder tape (HIP-3 oracle, or the Binance spot bStock book mid where no HIP-3 market exists), so trades\nbefore the tape began, or for companies the probe does not record, are reported as not measurable.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_get_overpay_audit","resident":false,"title":"Overpay audit of an address"},"examples":[{"summary":"What an address paid per share over 30 days","arguments":{"address":"0x31a7b23ee857e1ddcffe7cac2918af2e1999c7ce","days":30}}]},"x-binance":{"endpoints":["GET /api/v1/dex/market/portfolio/dex-history"],"lane":"L2_AGENT"},"parameters":[{"$ref":"#/components/parameters/AddressPath"},{"name":"days","in":"query","required":false,"description":"Look-back window ending now.","schema":{"type":"integer","minimum":1,"maximum":90,"default":30}}],"responses":{"200":{"description":"The audit.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/OverpayAudit"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/previews/buy-checked":{"post":{"operationId":"previewBuyChecked","tags":["preview"],"summary":"A buy preview plus the Verdict rules applied to it, and the recorded cost of selling right away.","description":"Runs previewBuy, then evaluates `@sx/verdict` server-side on the previewed per-share price with the live\nreference observations, fair value, the simulation's observed output and the hazards this server can read.\nHazards it cannot read are listed in `check.unread` and cap the decision at CAUTION: GO is only returned when\nevery input was read. Reference prices stay inside the server; only deviations derived from them leave it.\n`exit` is the median per-share price of recorded sell quotes for the same wrapper near the same size (the\ntape), not a simulation. Nothing is bought, signed or broadcast.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"preview","mcp":{"tool":"sx_preview_buy_checked","resident":false,"title":"Preview a buy with its verdict (simulation only)","idempotent":false},"examples":[{"summary":"$1,000 of NVIDIA via bStock with its verdict and exit cost","arguments":{"ticker":"NVDA","issuer":"bstock","amountUsd":"1000","inputToken":"BNB"}}],"payment":{"priceUsd":"0.02","delivers":"A fresh quote simulated for exactly your amount, the Verdict on it and the recorded cost of selling right away.","surfaces":["mcp_sdk"],"offline":"serve"}},"x-binance":{"endpoints":["GET /api/v1/dex/aggregator/quote","GET /api/v1/dex/aggregator/swap","POST /api/v1/dex/pre-transaction/simulate"],"lane":"L1_PREVIEW","errorCategories":["QUOTE","QUOTE_EXPIRED","SWAP","EQUITY_TOKEN","RATE_LIMIT","REGION","SERVER"]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewBuyRequest"}}}},"responses":{"200":{"description":"The preview, its check and the exit estimate.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/CheckedPreview"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/fx/{currency}":{"get":{"operationId":"getFx","tags":["platform"],"summary":"US dollar to a launch-market currency, with source and freshness, and conversions of given USD amounts.","description":"AED: the Central Bank of the UAE's published rate, a fixed peg of 3.6725 AED per USD\n(https://www.centralbank.ae/en/forex-eibor/exchange-rates/). IDR: Bank Indonesia's JISDOR, the official daily\nUSD/IDR reference rate (https://www.bi.go.id/en/statistik/informasi-kurs/jisdor/default.aspx). Pyth's\n`FX.USD/IDR` exists but needs an FX entitlement our key does not have (checked 2026-10-11); Pyth has no USD/AED.\nAmounts are for framing only: transactions stay in USDT.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_get_fx","resident":false,"title":"USD to IDR or AED with source and age"},"examples":[{"summary":"$100 and $1,000 in Indonesian rupiah","arguments":{"currency":"IDR","usd":"100,1000"}}]},"parameters":[{"name":"currency","in":"path","required":true,"schema":{"type":"string","enum":["IDR","AED"]}},{"name":"usd","in":"query","required":false,"description":"Up to 10 comma-separated USD amounts to convert.","schema":{"type":"string","pattern":"^[0-9]{1,12}(\\.[0-9]{1,6})?(,[0-9]{1,12}(\\.[0-9]{1,6})?){0,9}$"}}],"responses":{"200":{"description":"The rate and conversions.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/FxRate"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/calibration":{"get":{"operationId":"getCalibration","tags":["accuracy"],"summary":"How accurate our published numbers have been, graded against what happened afterwards.","description":"Every fair-value band the API publishes (at 1 h, 6 h and the next regular open) and every GO price check is\nissued as a promise (`@sx/promises`): content-addressed, signed with the promise key, with the outcome and the\nscoring rule fixed before the outcome is known. The ingest grading job resolves each promise against the tape\nand grades it HIT, MISS, UNRESOLVED (with the reason, never filled in) or VOID (premise failed, with the reason).\nThis operation reports, per promise kind, session and horizon: coverage against the nominal coverage the\npromises claimed, with a Wilson 95% interval (a floor on the true uncertainty: promises on one tape are\ncorrelated), the error of the point, where outcomes fell inside the band, reliability per claimed coverage, and\nevery UNRESOLVED and VOID count with its reason. Bands that claim no coverage (PROVISIONAL) are reported as such,\nnever as if they had claimed one. A group with fewer than `minScored` graded promises says so instead of a rate.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_get_calibration","resident":true,"title":"Accuracy record of our published numbers"},"examples":[{"summary":"Our accuracy over the last 30 days","arguments":{"days":30}}]},"parameters":[{"name":"days","in":"query","required":false,"description":"Promises issued in the last `days` days.","schema":{"type":"integer","minimum":1,"maximum":90,"default":30}}],"responses":{"200":{"description":"The calibration report.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Calibration"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/anchors":{"get":{"operationId":"listAnchors","tags":["accuracy"],"summary":"The Merkle roots of our signed promises, posted on BNB Smart Chain.","description":"Every promise row is written to the ledger and, within the hour (and five minutes before each regular open), lands\nin one batch: a Merkle tree over the promises written in that window, whose root is posted to the AnchorRegistry\ncontract with the previous root, so the roots form one chain nobody can rewrite. Leaves are keccak256(0x00 ‖\nitemHash); inner nodes hash the sorted pair (OpenZeppelin MerkleProof). Newest first.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_list_anchors","resident":false,"title":"On-chain roots of our signed promises"},"examples":[{"summary":"The latest anchors","arguments":{"limit":24}}]},"parameters":[{"name":"limit","in":"query","required":false,"description":"Batches to return, newest first.","schema":{"type":"integer","minimum":1,"maximum":200,"default":48}}],"responses":{"200":{"description":"Recent anchor batches.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Anchors"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/promises/{promiseId}/proof":{"get":{"operationId":"getPromiseProof","tags":["accuracy"],"summary":"Proof that a promise was committed on chain, and whether that was before its outcome.","description":"The promise exactly as hashed, its leaf, and for every anchor batch that holds it the Merkle proof to the root\nposted on BNB Smart Chain, recomputed by the server, with the block time compared to the earliest moment the\npromise's outcome could be observed. Anyone can check it without us: hash the payload, verify the proof with\nOpenZeppelin MerkleProof against the root in the transaction's Anchored event, and compare the block time.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_get_promise_proof","resident":false,"title":"On-chain proof of one promise"},"examples":[{"summary":"Proof for one promise","arguments":{"promiseId":"0x1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a"}}]},"parameters":[{"name":"promiseId","in":"path","required":true,"description":"The promise id (keccak256 of its JCS body).","schema":{"$ref":"#/components/schemas/Hex32"}}],"responses":{"200":{"description":"The promise and its anchors.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PromiseProof"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/check":{"post":{"operationId":"checkToken","tags":["identity"],"summary":"Is this real? Identity of the token addresses, links and tickers in a piece of text.","description":"Deterministic classification (`@sx/token-check` over the registry's identity book) of up to five candidates found\nin the text: GENUINE (the issuer lists it and BNB Smart Chain agrees), GENUINE_NOT_ROUTABLE, IMPERSONATOR (and of\nwhat), FAMILY_CODE_UNLISTED, UNRELATED_TOKEN, WALLET_NOT_TOKEN, ADDRESS_LOOKALIKE or UNKNOWN with its reason.\nLinks are never fetched; addresses are read once on BNB Smart Chain. The text is never stored or logged: only its\nkeccak256 digest enters the proof. Each verdict carries a proof (RFC 8785 canonical JSON, keccak256) signed as\nEIP-712 `TokenCheck` by the server's attestor key when one is configured. Identity only: a GENUINE verdict says\nwho issued a token, never that it is safe, cheap or worth buying.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_check_token","resident":true,"title":"Is this real? Token identity check"},"examples":[{"summary":"Is this contract the genuine NVIDIA bStock?","arguments":{"text":"is 0x02fca66c1d1afb4e2a7884261eb00f63598a7436 the real NVDA token?"}},{"summary":"Deep check: identity plus honeypot, transfer tax and audit (paid)","arguments":{"text":"0x02fca66c1d1afb4e2a7884261eb00f63598a7436","mode":"deep"}}],"payment":{"priceUsd":"0.01","delivers":"Identity plus, for every address the issuers do not list, Binance's honeypot and transfer-tax reading and the token audit.","when":{"field":"mode","value":"deep"},"offline":"refuse"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenCheckRequest"}}}},"responses":{"200":{"description":"One verdict per candidate, with proofs.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/TokenCheck"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/companies/{ticker}/shariah":{"get":{"operationId":"getShariahScreen","tags":["shariah"],"summary":"A company's Shariah screen under a chosen methodology, with every input and filing date.","description":"The screen (`@sx/shariah`) of the company's latest SEC EDGAR fundamentals (the ingest `edgar` job's archive)\nagainst a versioned, hashed methodology: PASS, FAIL, QUESTIONABLE, UNRATED or STALE per test and overall, each\ntest with its ratio bounds, limit, inputs, the filing they come from and the methodology clause. Tests the\ninputs cannot support stay UNRATED rather than passing. Next to it, the review status of every wrapper that\ndelivers the company (what a holder actually owns, and whether a scholar has reviewed it). When no fundamentals\nhave been archived for the company, `status` is NOT_SCREENED with the reason, never a guessed result.\nInformation, not a fatwa. Copy in `ar` and `id` is a draft pending native-speaker and Shariah review (`copy.review`).\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_get_shariah_screen","resident":true,"title":"Shariah screen of a company (information, not a fatwa)"},"examples":[{"summary":"Apple under AAOIFI SS 21","arguments":{"ticker":"AAPL","methodology":"aaoifi-ss21"}}]},"parameters":[{"$ref":"#/components/parameters/Ticker"},{"name":"methodology","in":"query","required":false,"schema":{"type":"string","enum":["aaoifi-ss21","djim","msci-islamic","ojk-2025"],"default":"aaoifi-ss21"}},{"name":"locale","in":"query","required":false,"description":"Language of the plain-language lines (`headline`, `tests[].line`, `wrappers[].line`, `disclaimer`).","schema":{"type":"string","enum":["en","ar","id"],"default":"en"}}],"responses":{"200":{"description":"The screen, or why there is none.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/ShariahScreen"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/telegram/link/{token}":{"get":{"operationId":"getTelegramLink","tags":["platform"],"summary":"What a Telegram link token is for, without using it.","description":"Served by the Telegram link sub-app (`@sx/telegram-link`) that apps/api mounts on the same origin; not part of\nthe read pipeline, the MCP tools or the in-process API (`x-sx-mounted`). A GET never uses the token: chat apps\nfetch link previews with GET from their own servers. Responses carry `Referrer-Policy: no-referrer` and\n`Cache-Control: no-store`.\n","x-sx-mounted":"telegram-link","parameters":[{"$ref":"#/components/parameters/TelegramToken"}],"responses":{"200":{"description":"The token is valid and unused; `telegram.displayName` names the account it would link.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramLinkView"}}}},"404":{"description":"Unknown or malformed token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramLinkView"}}}},"410":{"description":"The token expired (links last 10 minutes) or was already used.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramLinkView"}}}},"429":{"description":"Too many requests from this client.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramLinkOutcome"}}}}}},"post":{"operationId":"confirmTelegramLink","tags":["platform"],"summary":"Use a Telegram link token - decide eligibility for this request and bind it to the Telegram account.","description":"Needs `{\"confirm\": true}` as JSON (the content type forces a CORS preflight, so no other site can use a token from\na visitor's browser). The tier comes from the EligibilityEngine on this request's trusted country headers.\nVERIFIED binds read features for 7 days; REFUSED records the refusal and revokes an earlier binding. If eligibility\ncannot be decided the answer is 503 and the token is not spent.\n","x-sx-mounted":"telegram-link","parameters":[{"$ref":"#/components/parameters/TelegramToken"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramLinkConfirm"}}}},"responses":{"200":{"description":"VERIFIED or REFUSED.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramLinkOutcome"}}}},"400":{"description":"The body was not {\"confirm\": true} (CONFIRMATION_REQUIRED). Also 413 (body too large) and 415 (not JSON).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramLinkOutcome"}}}},"404":{"description":"TOKEN_UNKNOWN.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramLinkOutcome"}}}},"410":{"description":"TOKEN_EXPIRED or TOKEN_USED.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramLinkOutcome"}}}},"429":{"description":"Too many confirmations from this client (the heavy rate class; a confirmation spends no Binance call).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramLinkOutcome"}}}},"503":{"description":"ELIGIBILITY_UNAVAILABLE. The token is not spent; try again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramLinkOutcome"}}}}}}},"/v1/portfolio":{"get":{"operationId":"getPortfolio","tags":["companies"],"summary":"A portfolio of any BSC addresses in shares, with lots, TTWROR and IRR, dividends, the Deed and the gain split.","description":"No account needed. Holdings are on-chain balances × on-chain shares per token, summed over up to five wallets and\nevery wrapper. The position history comes from the Binance Wallet API and Address Portfolio dex-history, each\ntransaction settled from its BSC receipt; multiplier steps from the issuers' own logs (tape). Lots are first in,\nfirst out; dividend steps, splits and reverse splits change shares at zero cost. TTWROR and IRR follow Portfolio\nPerformance's published definitions. \"Is this gain real?\" splits each open lot's gain into the company's own\nprice move, the token's premium, shares added by dividend steps, and entry costs. Values computed from Binance\nprices or HIP-3 marks are derived values under the rights matrix.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_get_portfolio","resident":false,"title":"Portfolio in shares with returns and lots"},"examples":[{"summary":"The portfolio of one wallet that holds NVIDIA through Ondo","arguments":{"addresses":"0x9ebfcc2863ad230ddd2e339271b247acc4b8bec6"}}]},"x-binance":{"endpoints":["GET /api/v1/dex/post-transaction/transactions-by-address","POST /api/v1/dex/balance/token-balances-by-address","GET /api/v1/dex/market/portfolio/dex-history","POST /api/v1/dex/market/price","GET /api/v1/dex/market/candles"],"lane":"L2_AGENT"},"parameters":[{"name":"addresses","in":"query","required":true,"description":"One to five BSC addresses, comma-separated. Transfers between them are treated as internal.","schema":{"type":"string","minLength":42,"maxLength":220,"pattern":"^0x[0-9a-fA-F]{40}(,0x[0-9a-fA-F]{40}){0,4}$"}}],"responses":{"200":{"description":"The portfolio.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Portfolio"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/companies/{ticker}/routes":{"get":{"operationId":"getRoutes","tags":["premium"],"summary":"Every venue and wrapper for a buy of this company at this size, priced in shares, with the defaults and our pick.","description":"VenueRouter asks the Binance aggregator per wrapper, KyberSwap and CoW Protocol per wrapper for the same buy at the\nsame moment, converts tokens to shares with each wrapper's on-chain shares per token, and ranks by net shares\nafter gas, approval, measured fill shortfall, requote risk and exit cost. A price more than 3x from the other\nvenues is blocked. D0 is Binance's aggregator route on the bStock wrapper; D1 the aggregator route on the issuer\nBinance reports the most volume for. Quotes only: nothing is built or signed.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_compare_routes","resident":false,"title":"Compare every route for a buy in shares"},"examples":[{"summary":"Every route for $1,000 of NVIDIA across bStocks, Ondo and xStocks","arguments":{"ticker":"NVDA","usd":"1000"}}]},"x-binance":{"endpoints":["GET /api/v1/dex/aggregator/quote","GET /api/v1/dex/pre-transaction/gas-price","POST /api/v1/dex/market/price","POST /api/v1/dex/market/price-info"],"lane":"L1_PREVIEW"},"parameters":[{"$ref":"#/components/parameters/Ticker"},{"name":"usd","in":"query","required":true,"description":"Amount to spend in US dollars, 1 to 1,000,000.","schema":{"$ref":"#/components/schemas/UsdInput"}}],"responses":{"200":{"description":"The route comparison.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/RouteComparison"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/addresses/{address}/migration":{"get":{"operationId":"getWrapperMigration","tags":["premium"],"summary":"What switching a holding to another wrapper of the same company would leave in shares.","description":"For each wrapper of the company the address holds, the best route to sell the whole holding and the best permitted\nroute to buy the same company through each other wrapper with the proceeds; the share change is shares after\nboth legs minus shares held now. Preview only: a switch is re-priced and simulated leg by leg when signed\n(packages/execution ROTATE).\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_preview_wrapper_switch","resident":false,"title":"Preview a switch between wrappers in shares"},"examples":[{"summary":"Would this wallet's NVIDIA be cheaper to hold through another issuer","arguments":{"address":"0x9ebfcc2863ad230ddd2e339271b247acc4b8bec6","ticker":"NVDA"}}]},"parameters":[{"$ref":"#/components/parameters/AddressPath"},{"name":"ticker","in":"query","required":true,"description":"Underlying ticker, e.g. NVDA.","schema":{"type":"string","pattern":"^[A-Za-z0-9.\\-]{1,16}$"}}],"responses":{"200":{"description":"The switch options.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/WrapperMigration"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/route-arena":{"get":{"operationId":"getRouteArena","tags":["premium"],"summary":"Route Arena - what every venue would have delivered in shares at the same moment against the route we chose.","description":"Recorded by the ingest arena job on the L3 lane: per company, size and session, the Binance aggregator route per\nwrapper, KyberSwap and CoW Protocol per wrapper, quoted in the same moment and scored on shares delivered per\ndollar after venue fees and gas (quoted shares less a measured fill shortfall where one exists), with Jupiter on\nSolana as a per-token benchmark. Reports the share of cells where our choice is within 1 bp of the best, every\nabsurd quote and whether any was chosen, savings against D0 and D1, and why our choice differed where it did.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_get_route_arena","resident":false,"title":"Route Arena record against rival venues"},"examples":[{"summary":"How our routing compared with KyberSwap and CoW over the last day","arguments":{"hours":24}}]},"parameters":[{"name":"hours","in":"query","required":false,"description":"Cells recorded in the last `hours` hours.","schema":{"type":"integer","minimum":1,"maximum":720,"default":24}},{"name":"ticker","in":"query","required":false,"description":"Only this company.","schema":{"type":"string","pattern":"^[A-Za-z0-9.\\-]{1,16}$"}}],"responses":{"200":{"description":"The arena record.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/RouteArena"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/companies/{ticker}/chart":{"get":{"operationId":"getCompanyChart","tags":["companies"],"summary":"Executable price per share of every wrapper over time, the session of every stretch, and each wrapper's move.","description":"The executable series is our own buy quotes at $1,000 per wrapper from the recorder tape, per share with the\nratio in force at each quote. Sessions come from the MarketClock calendar layer so a chart can shade nights and\nweekends. Moves are Binance Market candles per wrapper as % change from the window's first open; raw Binance\nprices are withheld until written terms exist.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_get_company_chart","resident":false,"title":"Price per share over time by wrapper and session"},"examples":[{"summary":"NVIDIA's executable price per share over the last 3 days","arguments":{"ticker":"NVDA","hours":72}}]},"x-binance":{"endpoints":["GET /api/v1/dex/market/candles"],"lane":"L2_AGENT"},"parameters":[{"$ref":"#/components/parameters/Ticker"},{"name":"hours","in":"query","required":false,"description":"Window in hours (24, 72, 168 or 720).","schema":{"type":"integer","enum":[24,72,168,720],"default":72}}],"responses":{"200":{"description":"The chart series.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/CompanyChart"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/companies/{ticker}/market":{"get":{"operationId":"getCompanyMarket","tags":["companies"],"summary":"Trading activity and holder concentration of every wrapper of a company.","description":"Binance Market trading info and the top-100 holder ranking per wrapper, as derived figures: the 24 h change, the\nbuy share of 24 h volume and how much the largest holders hold. Raw Binance prices, volumes and counts pass\nthrough the rights matrix and are withheld until written terms exist.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_get_company_market","resident":false,"title":"Trading activity and holder concentration by wrapper"},"examples":[{"summary":"How concentrated NVIDIA token holdings are on each issuer","arguments":{"ticker":"NVDA"}}]},"x-binance":{"endpoints":["POST /api/v1/dex/market/price-info","GET /api/v1/dex/market/token/holder"],"lane":"L2_AGENT"},"parameters":[{"$ref":"#/components/parameters/Ticker"}],"responses":{"200":{"description":"Market data per wrapper.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/CompanyMarket"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/intents":{"post":{"operationId":"draftIntent","tags":["execution"],"summary":"Draft an intent to buy, sell, rotate or withdraw. Nothing is quoted, signed or moved.","description":"Parses and hashes the intent (JCS + keccak256). Every default (slippage, deadline) is written into the intent,\nso its hash commits to it. Idempotent per account and clientIntentId: the same key and body returns the same\nintent, the same key with a different body is IDEMPOTENCY_CONFLICT. An agent must name itself in agentId.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_draft_intent","resident":false,"title":"Draft a trade intent (nothing moves)","idempotent":false},"write":{"kind":"draft"},"examples":[{"summary":"Paper-buy $5 of NVIDIA","arguments":{"kind":"BUY","custody":"P","account":"0x412262d814e88ee29e26b519b918187f983af02d","exposure":"NVDA","amountUsd":"5","agentId":"my-agent"}},{"summary":"Sell every NVDAB held, accepting the price","arguments":{"kind":"SELL","custody":"U","account":"0x412262d814e88ee29e26b519b918187f983af02d","exposure":"NVDA","instrument":"0x02fca66c1d1afb4e2a7884261eb00f63598a7436","amountAll":true}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecDraftRequest"}}}},"responses":{"200":{"description":"The intent, created or (same idempotency key and body) already existing.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/ExecIntentView"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/intents/{intentId}":{"get":{"operationId":"getIntent","tags":["execution"],"summary":"An intent's state, steps, fills and the next action. Reads the chain for a step in flight.","description":"The chain is the source of truth: a broadcast step is observed (receipt, mempool, nonce) and reconciled in shares\nfrom its receipt's Transfer logs at the fill block. Nothing new is quoted, signed or sent by this read.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_get_intent","resident":false,"title":"Get an intent's status"},"examples":[{"summary":"Status of an intent","arguments":{"intentId":"5f0e8c1a-6a3b-4f6e-9a51-2a4f8e9d1c07"}}]},"parameters":[{"$ref":"#/components/parameters/IntentId"}],"responses":{"200":{"description":"The intent.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/ExecIntentView"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/intents/{intentId}/preflight":{"post":{"operationId":"preflightIntent","tags":["execution"],"summary":"Route, build, simulate and judge the intent, then issue a single-use confirm token.","description":"Registry check, VenueRouter route, a Binance build for the account (L0 lane), the Verdict before and after the\nsimulation (Binance /simulate, a fork run, or the mode-S keeper dry run; anything not simulated SUCCESS is\nrefused), the Verdict co-signatures, the policy, and the price envelope. The confirm token (ES256, expiring,\nsingle use) binds the intent, the preflight, the quote, the Verdict and the envelope; it is returned once and\nnever stored. A refusal carries its code and reason and leaves the intent in DRAFT.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"preview","mcp":{"tool":"sx_preflight_intent","resident":false,"title":"Preflight an intent (simulation only)","idempotent":false},"write":{"kind":"draft"},"examples":[{"summary":"Preflight a drafted intent","arguments":{"intentId":"5f0e8c1a-6a3b-4f6e-9a51-2a4f8e9d1c07"}}]},"x-binance":{"endpoints":["GET /api/v1/dex/aggregator/quote","GET /api/v1/dex/aggregator/swap","POST /api/v1/dex/pre-transaction/simulate","POST /api/v1/dex/pre-transaction/gas-limit","GET /api/v1/dex/aggregator/approve-transaction"],"lane":"L0_EXECUTION","errorCategories":["QUOTE","QUOTE_EXPIRED","SWAP","EQUITY_TOKEN","RATE_LIMIT","REGION","SERVER"]},"parameters":[{"$ref":"#/components/parameters/IntentId"}],"responses":{"200":{"description":"The preflighted intent and its confirm token, or the refusal.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/ExecPreflightView"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/intents/{intentId}/confirm":{"post":{"operationId":"confirmIntent","tags":["execution"],"summary":"Confirm a preflighted intent with its token; execution starts inside the confirmed envelope.","description":"Consumes the confirm token (single use) and runs the intent as far as it can: paper intents fill on a fork;\nmode U returns the exact transaction the owner signs (or, for a development wallet held here, signs it after\nthe owner's EIP-712 ConfirmIntent signature); mode S executes through the keeper after the owner's signature or\ninside a signed mandate. Every step is rebuilt fresh, simulated again and judged inside the confirmed envelope;\nsigned bytes are stored before they are broadcast through the Binance Transaction API with MEV protection.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_confirm_intent","resident":false,"title":"Confirm an intent with its token","idempotent":false},"write":{"kind":"execute","paper":{"field":"mode","value":"paper"}},"examples":[{"summary":"Confirm a paper intent","arguments":{"intentId":"5f0e8c1a-6a3b-4f6e-9a51-2a4f8e9d1c07","confirmToken":"eyJhbGciOiJFUzI1NiJ9.eyJqdGkiOiIxIn0.c2ln","mode":"paper"}}]},"parameters":[{"$ref":"#/components/parameters/IntentId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecConfirmRequest"}}}},"responses":{"200":{"description":"The intent after confirmation and whatever could run.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/ExecIntentView"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/intents/{intentId}/next":{"post":{"operationId":"prepareIntentStep","tags":["execution"],"summary":"Prepare the next step of a confirmed intent from a fresh quote, inside the confirmed envelope.","description":"Used when a prepared transaction expired before it was signed, or after a step landed. A fresh build outside\nthe envelope (a worse Verdict, less out than confirmed) sends the intent back to DRAFT for a new preflight.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_prepare_intent_step","resident":false,"title":"Prepare the next step of an intent","idempotent":false},"write":{"kind":"execute","paper":{"field":"mode","value":"paper"}},"examples":[{"summary":"Prepare the next step of a paper intent","arguments":{"intentId":"5f0e8c1a-6a3b-4f6e-9a51-2a4f8e9d1c07","mode":"paper"}}]},"parameters":[{"$ref":"#/components/parameters/IntentId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecNextRequest"}}}},"responses":{"200":{"description":"The intent with its next action.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/ExecIntentView"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/intents/{intentId}/submit":{"post":{"operationId":"submitSignedTransaction","tags":["execution"],"summary":"Submit the owner's signed transaction for the prepared step (mode U). It is relayed only if it is exact.","description":"The signed bytes must decode to exactly the prepared transaction (chain, to, data, value, nonce, gas, gas\nprice) and recover to the account. They are stored, then broadcast through the Binance Transaction API with MEV\nprotection; a KYT refusal fails the intent with its code and is never sent elsewhere. Submitting the same bytes\nagain is idempotent; different bytes while a step is in flight are refused. Not offered on MCP: an agent never\nholds the owner's key.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_submit_signed_transaction","resident":false,"title":"Submit an owner-signed transaction","idempotent":false},"write":{"kind":"owner"},"examples":[{"summary":"Relay the owner's signed approve","arguments":{"intentId":"5f0e8c1a-6a3b-4f6e-9a51-2a4f8e9d1c07","signedTransaction":"0xf86b"}}]},"x-binance":{"endpoints":["POST /api/v1/dex/pre-transaction/broadcast-transaction"],"lane":"L0_EXECUTION","errorCategories":["KYT","BROADCAST","CHAIN","SERVER"]},"parameters":[{"$ref":"#/components/parameters/IntentId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecSubmitRequest"}}}},"responses":{"200":{"description":"The intent after the broadcast and, when the receipt arrived in time, its reconciliation.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/ExecIntentView"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/policies":{"post":{"operationId":"registerPolicy","tags":["execution"],"summary":"Register an owner-signed EIP-712 mandate that automation runs under.","description":"The mandate is verified against its owner's signature (domain \"SX Mandate\" v1, chain 56) and stored by its id,\nkeccak256(JCS(mandate)). Agents can tighten a policy, never loosen it: a loosening is a new mandate signed by the\nowner. Exits are never denied by a mandate. Not offered on MCP.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_register_policy","resident":false,"title":"Register a signed mandate","idempotent":true},"write":{"kind":"owner"},"examples":[{"summary":"Register a daily $50 NVIDIA mandate","arguments":{"mandate":{"account":"0x412262d814e88ee29e26b519b918187f983af02d","owner":"0x412262d814e88ee29e26b519b918187f983af02d","custody":"U","kinds":["BUY"],"exposures":["EQ:NVDA"],"issuers":["bstock"],"sessions":[],"agentIds":[],"draftOnly":false,"maxPerIntentUsdMicro":"10000000","capPerPeriodUsdMicro":"50000000","periodSeconds":"86400","maxPremiumBpsX100":5000,"allowCaution":false,"validFrom":"1791700000","validUntil":"1794300000","nonce":"1"},"signature":"0x00"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecPolicyRequest"}}}},"responses":{"200":{"description":"The policy id and whether it was new.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/ExecPolicy"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/policies/{policyId}":{"get":{"operationId":"getPolicy","tags":["execution"],"summary":"A registered mandate by its id.","description":"The mandate as signed, when it was registered and whether it has been revoked.","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_get_policy","resident":false,"title":"Get a registered mandate"},"examples":[{"summary":"Read a mandate","arguments":{"policyId":"0x9f2c6a0b1c7e4d3f8a5b6c7d8e9f00112233445566778899aabbccddeeff0011"}}]},"parameters":[{"name":"policyId","in":"path","required":true,"schema":{"type":"string","pattern":"^0x[0-9a-f]{64}$"}}],"responses":{"200":{"description":"The mandate.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/ExecPolicy"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/custody":{"get":{"operationId":"getCustodyModes","tags":["execution"],"summary":"Which custody modes this deployment can execute, and why the others cannot.","description":"P paper, U self-custody EOA, S smart account with the on-chain SpendGuard, U+ 7702-delegated EOA, A Agentic\nWallet, C linked Binance account, L licensed partner. An unavailable mode names its reason and what would make it\navailable. Also the confirm-token public key (JWK) and the Verdict co-signer set.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_custody_modes","resident":false,"title":"List custody modes and their availability"},"examples":[{"summary":"What can execute here","arguments":{}}]},"responses":{"200":{"description":"Custody modes.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/ExecCustody"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/themes":{"get":{"operationId":"listThemes","tags":["automation"],"summary":"Our theme taxonomy and every theme's rule and member count.","description":"Themes are our own classification (PRD §6.9): Binance's free-text industry field mapped to our sectors, fund\nclasses by objective, dated curated lists and evidence sets (dividends seen on chain, Shariah screens that pass).\nThe taxonomy and each theme's members are hashed, so a basket can prove which rule and which data made it.\nLeveraged and inverse funds never enter a theme.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_list_themes","resident":false,"title":"List investment themes"},"examples":[{"summary":"Every theme and its rule","arguments":{}}]},"responses":{"200":{"description":"The taxonomy and its themes.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/ThemeList"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/themes/{themeId}":{"get":{"operationId":"getTheme","tags":["automation"],"summary":"One theme's members with their sector, fund class and wrappers.","description":"The members as the rule selects them from the registry now, with the hash that proves the selection.","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_get_theme","resident":false,"title":"Get a theme's members"},"examples":[{"summary":"The Magnificent 7","arguments":{"themeId":"mag7"}},{"summary":"Semiconductors","arguments":{"themeId":"semiconductors"}}]},"parameters":[{"name":"themeId","in":"path","required":true,"description":"A theme id from sx_list_themes.","schema":{"type":"string","pattern":"^[a-z0-9-]{2,40}$"}}],"responses":{"200":{"description":"The theme and its members.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/ThemeDetail"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/baskets/compose":{"post":{"operationId":"composeBasket","tags":["automation"],"summary":"A basket for an amount, in shares of each company, with the best wrapper per leg and its proof.","description":"Builds the basket recipe (from a theme or your own list), splits the amount exactly, and prices each leg through\nthe VenueRouter (live) or the recorded quote tape (the default, no Binance budget), across bStocks, Ondo and\nxStocks. Legs below a wrapper's minimum are not dropped: they pool until they can be bought. With an account it\nalso returns one intent draft per ready leg for the execution core (paper custody unless you say otherwise).\nNothing is bought, signed or moved. The composition hash is the proof of what was priced, recorded for the hourly\nanchor.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_compose_basket","resident":false,"title":"Compose a basket (preview, nothing moves)","idempotent":false},"examples":[{"summary":"$200 of the Magnificent 7","arguments":{"themeId":"mag7","amountUsd":"200"}},{"summary":"My own basket with drafts for a paper account","arguments":{"name":"Chips and gold","members":[{"exposure":"NVDA","weightPercent":"40"},{"exposure":"TSM","weightPercent":"30"},{"exposure":"ETF:GLD","weightPercent":"30"}],"amountUsd":"500","account":"0x412262d814e88ee29e26b519b918187f983af02d"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasketComposeRequest"}}}},"responses":{"200":{"description":"The composition, its proof and the drafts.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/BasketComposition"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/baskets/backtest":{"post":{"operationId":"backtestBasket","tags":["automation"],"summary":"Replay a basket with regular deposits on the tokens' own price history, net of executable costs.","description":"Daily prices are each member's tokenized-stock history (Binance Web3 Market candles of the wrapper the basket\nwould use), so the replay reflects what the token itself did, dividends included as share steps. Every trade pays\nthe all-in cost measured on our quote tape at its size plus the network fee, and is refused below the venue\nminimum. The same deposits are replayed under our Autopilot rules and under the strata, M1, Glider and Betterment\nrules. A return is shown only from the out-of-sample half and only if its deflated Sharpe ratio is at least 0.95;\notherwise it is withheld with the reason.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_backtest_basket","resident":false,"title":"Backtest a basket (replay only)","idempotent":true},"examples":[{"summary":"$50 a week into the Magnificent 7","arguments":{"themeId":"mag7","contributionUsd":"50","cadence":"WEEKLY"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasketBacktestRequest"}}}},"responses":{"200":{"description":"The replay of every rule on the same deposits.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/AutomationBacktest"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/autopilot/preview":{"post":{"operationId":"previewAutopilot","tags":["automation"],"summary":"What an Autopilot plan would do on its next run, why, and what it needs to run unattended.","description":"Parses the plan (every default written into it and hashed), then runs the production Autopilot rule on your\nholdings and the plan's cash: new money buys the most underweight companies; legs below a minimum are saved\ntoward it; sells happen only outside the band after the next deposits are counted, and only to the band's edge;\nanything without a fair price waits. Waiting money is shown in the instant-redeem product it would park in\n(never in riba-free mode). Also the next contribution dates, the goal timeline and the signed mandate the plan\nwould need for a real custody mode. Nothing is bought, signed or moved.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_preview_autopilot","resident":false,"title":"Preview an Autopilot run (nothing moves)","idempotent":true},"examples":[{"summary":"$100 every payday into NVIDIA and the S&P 500","arguments":{"plan":{"name":"Payday","account":"0x412262d814e88ee29e26b519b918187f983af02d","targets":[{"exposure":"NVDA","weightPercent":"40"},{"exposure":"ETF:SPY","weightPercent":"60"}],"contribution":{"amountUsd":"100","cadence":"PAYDAY","start":"2026-10-01"}},"planCashUsd":"100"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutopilotPreviewRequest"}}}},"responses":{"200":{"description":"The next run, the schedule and the goal.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/AutopilotPreview"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/autopilot/replay":{"post":{"operationId":"replayAutopilot","tags":["automation"],"summary":"Replay an Autopilot plan on the tokens' own price history against the strata, M1, Glider and Betterment rules.","description":"The production Autopilot run inside a deterministic replay: the same deposits, the same per-trade costs from our\nquote tape and the same minimums for every rule. Reports sells, turnover, cost drag, minimum-order waste, parking\nyield and tracking error. Display of any return follows the same walk-forward and deflated-Sharpe gate as basket\nbacktests.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_replay_autopilot","resident":false,"title":"Replay an Autopilot plan (replay only)","idempotent":true},"examples":[{"summary":"Replay a weekly two-company plan","arguments":{"plan":{"name":"Weekly","account":"0x412262d814e88ee29e26b519b918187f983af02d","targets":[{"exposure":"NVDA","weightPercent":"50"},{"exposure":"AAPL","weightPercent":"50"}],"contribution":{"amountUsd":"25","cadence":"WEEKLY","weekday":1,"start":"2026-06-15"}}}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutopilotReplayRequest"}}}},"responses":{"200":{"description":"The replay of every rule on the same deposits.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/AutomationBacktest"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/autopilot/arm":{"post":{"operationId":"armAutopilot","tags":["automation"],"summary":"Arm an Autopilot plan, in paper mode or under the owner's registered mandate.","description":"Paper (custody P) arms at once and runs as a simulation. Any other custody mode needs the policy id of an\nowner-signed mandate registered with sx_register_policy (the confirm step a person does in our app) that covers\nevery company, side, wrapper and amount the plan can use; the plan is refused, with the field that falls\nshort, otherwise. Arming is recorded as a decision record bound to the plan hash. On MCP, paper only.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_arm_autopilot","resident":false,"title":"Arm an Autopilot plan (paper on MCP)","idempotent":true},"write":{"kind":"execute","paper":{"field":"custody","value":"P"}},"examples":[{"summary":"Arm a plan in paper mode","arguments":{"custody":"P","plan":{"name":"Payday","account":"0x412262d814e88ee29e26b519b918187f983af02d","targets":[{"exposure":"NVDA","weightPercent":"100"}],"contribution":{"amountUsd":"50","cadence":"MONTHLY","dayOfMonth":25,"start":"2026-10-01"}}}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutopilotArmRequest"}}}},"responses":{"200":{"description":"The armed plan.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/AutopilotArmed"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/earnings":{"get":{"operationId":"getEarnings","tags":["automation"],"summary":"Storm Season calendar: earnings, issuer limits, dividend steps and US macro dates, with an .ics feed.","description":"Earnings come from SEC EDGAR (each quarter's 8-K item 2.02 release matched to its 10-Q or 10-K, timed from the\nfiling's Accepted time; the next date projected from the same quarter last year with a window until it is\nobserved). Issuer limits are Binance ASSET_LIMITED and ASSET_PAUSED windows from our status tape. Dividend steps\nare share-multiplier announcements and steps read on chain. Macro dates are the BLS release schedule and FOMC\ndecisions. Every event has a revision-safe id, its status, its sources and its revision history; the .ics uses\nthe id as UID and the revision as SEQUENCE, so calendar apps update an entry rather than duplicate it.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_get_earnings","resident":false,"title":"Earnings and event calendar"},"examples":[{"summary":"NVIDIA and Apple for the next 90 days with macro dates","arguments":{"tickers":"NVDA,AAPL","days":90,"macro":true}}]},"parameters":[{"name":"tickers","in":"query","required":true,"description":"Up to 12 tickers, comma-separated.","schema":{"type":"string","pattern":"^[A-Za-z0-9.]{1,12}(,[A-Za-z0-9.]{1,12}){0,11}$"}},{"name":"days","in":"query","required":false,"description":"How far ahead to list, days (past observed reports are always kept for history).","schema":{"type":"integer","minimum":1,"maximum":365,"default":120}},{"name":"macro","in":"query","required":false,"description":"Include BLS (CPI, jobs, PPI, JOLTS) and FOMC dates.","schema":{"type":"boolean","default":true}},{"name":"ics","in":"query","required":false,"description":"Also return the calendar as RFC 5545 text.","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"The calendar.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/EarningsCalendar"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/earnings/plans":{"post":{"operationId":"draftEarningsPlan","tags":["automation"],"summary":"Draft a pre-committed plan for a company's next report, as a StockRule program.","description":"Templates: TRIM_BEFORE, HEDGE_TO_STABLES, HOLD, BUY_DIP_IN_BAND and POSITION_AHEAD_FLATTEN_AFTER, in Option\nAlpha's vocabulary (before, N-after, BMO/AMC). The plan compiles to stockrule/1 (normalised, validated, hashed)\nand is said back in plain words. Exits default to the next regular-session opening auction; same-evening action\nis refused until a replay shows it beats waiting. Saved plans lock: until the event settles they can only be\nmade safer. Graded on keeping the plan, never on profit. Nothing is bought, signed or moved.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_draft_earnings_plan","resident":false,"title":"Draft an earnings plan (nothing moves)","idempotent":true},"write":{"kind":"draft"},"examples":[{"summary":"Trim a quarter of NVIDIA the day before its report","arguments":{"ticker":"NVDA","template":"TRIM_BEFORE","trimPercent":"25","daysBefore":1}},{"summary":"Buy $100 of Apple if it opens 8 to 25% down after its report","arguments":{"ticker":"AAPL","template":"BUY_DIP_IN_BAND","dipPercent":"8","floorPercent":"25","buyUsd":"100"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EarningsPlanRequest"}}}},"responses":{"200":{"description":"The compiled plan.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/EarningsPlan"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/allocator/preview":{"post":{"operationId":"previewAllocation","tags":["automation"],"summary":"Stocks and crypto by risk budget, with stablecoins as the volatility dial and plain reasons.","description":"Estimates each sleeve's volatility and their correlation from the tokens' daily history (EWMA, the correlation\nshrunk toward its long-run value; the weekend counts as one joint observation), solves the risk budgets exactly in\ntwo dimensions, then sets how much is invested so the whole portfolio sits near the volatility you chose, never\nborrowing. An optional CPPI floor caps the invested part. Every reason quotes the engine's numbers.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_preview_allocation","resident":false,"title":"Preview a stocks-and-crypto allocation","idempotent":true},"examples":[{"summary":"70% of the risk in stocks, 12% a year","arguments":{"equity":[{"exposure":"ETF:SPY","weightPercent":"60"},{"exposure":"NVDA","weightPercent":"40"}],"crypto":[{"exposure":"CRYPTO:BTC","weightPercent":"70"},{"exposure":"CRYPTO:BNB","weightPercent":"30"}],"equityRiskPercent":"70","targetVolPercent":"12"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AllocatorRequest"}}}},"responses":{"200":{"description":"The allocation and its reasons.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Allocation"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/allocator/backtest":{"post":{"operationId":"backtestAllocation","tags":["automation"],"summary":"Walk-forward test of the stocks-and-crypto allocator against fixed weights and a daily rebalance.","description":"Each month the model is estimated on data before the month only, the portfolio is rebalanced at the next bar\nnet of costs, and the month's realised volatility is compared with the forecast: bias (realised over predicted),\nQLIKE, drawdown, turnover, cost and each asset's share of the result. The same deposits run under fixed target\nweights rebalanced monthly and under a daily rebalance (Glider-style), for comparison.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_backtest_allocation","resident":false,"title":"Backtest the allocator (replay only)","idempotent":true},"examples":[{"summary":"Backtest 70/30 risk at 12% a year","arguments":{"equity":[{"exposure":"ETF:SPY","weightPercent":"100"}],"crypto":[{"exposure":"CRYPTO:BTC","weightPercent":"100"}],"equityRiskPercent":"70","targetVolPercent":"12"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AllocatorRequest"}}}},"responses":{"200":{"description":"The walk-forward results.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/AllocatorBacktest"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/parking":{"get":{"operationId":"getParking","tags":["automation"],"summary":"Where waiting stablecoins would park, and every product that was checked.","description":"Binance DeFi Earn products for BSC-USD on BNB Smart Chain, each checked live: investable, USDT only, no\nborrowing, an instant redeem proven by an unsigned redeem build, TVL and APY within safety floors. The highest\nverified APY among those that pass is chosen; higher rates that failed a check are shown with the check.\nRiba-free plans never park.\n","x-sx":{"eligibility":{"education":"deny","unknownCountry":"deny","prohibited":"deny"},"rateClass":"heavy","mcp":{"tool":"sx_get_parking","resident":false,"title":"Instant-redeem parking venues"},"examples":[{"summary":"Where waiting money parks now","arguments":{}}]},"x-binance":{"endpoints":["POST /api/v1/defi/data/investment/list","POST /api/v1/defi/data/investment/detail","POST /api/v1/defi/transaction/redeem"],"lane":"L3_SWEEP","errorCategories":["DEFI_BUILD","PARAMETER","RATE_LIMIT","REGION","SERVER"]},"responses":{"200":{"description":"The venues and the choice.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/ParkingVenues"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/records/{recordHash}/proof":{"get":{"operationId":"getRecordProof","tags":["automation"],"summary":"A decision record (locked plan, armed plan, basket composition) with its on-chain anchor proof.","description":"Decision records are anchored in the same hourly AnchorRegistry batches as promises, as kind \"decision\". This\nreturns the record's payload, its item hash and leaf, and every batch it is in with the Merkle proof checked\nagainst the stored leaves, so anyone can verify on BSC when the record was committed.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_get_record_proof","resident":false,"title":"Prove a decision record on chain"},"examples":[{"summary":"Prove a locked earnings plan","arguments":{"recordHash":"0x9f2c6a0b1c7e4d3f8a5b6c7d8e9f00112233445566778899aabbccddeeff0011"}}]},"parameters":[{"name":"recordHash","in":"path","required":true,"description":"The record's hash (0x + 64 hex), as returned when the record was made.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"The record and its anchors.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/RecordProof"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}},"/v1/earnings/plan-kept":{"get":{"operationId":"getPlanKept","tags":["automation"],"summary":"The public plan-kept record of Storm Season plans, by template and report timing.","description":"Every locked plan is graded once its lock ends from the strategy runtime's records: kept, refused with a typed\nreason, or missed. Never on profit. The rate is (kept + refused with a reason) / settled.\n","x-sx":{"eligibility":{"education":"allow","unknownCountry":"allow","prohibited":"deny"},"rateClass":"read","mcp":{"tool":"sx_get_plan_kept","resident":false,"title":"Plan-kept record"},"examples":[{"summary":"The plan-kept record","arguments":{}}]},"responses":{"200":{"description":"Graded plans and rates.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/PlanKept"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"default":{"$ref":"#/components/responses/Error"}}}}},"components":{"parameters":{"Ticker":{"name":"ticker","in":"path","required":true,"description":"Underlying ticker, e.g. NVDA. Case-insensitive.","schema":{"type":"string","pattern":"^[A-Za-z0-9.\\-]{1,16}$"}},"TelegramToken":{"name":"token","in":"path","required":true,"description":"The single-use link token from the bot (22 URL-safe characters when well formed).","schema":{"type":"string","minLength":1,"maxLength":128}},"AddressPath":{"name":"address","in":"path","required":true,"description":"A BSC address (0x + 40 hex). Case-insensitive.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},"IntentId":{"name":"intentId","in":"path","required":true,"description":"The intent id returned by sx_draft_intent.","schema":{"type":"string","format":"uuid"}}},"responses":{"Error":{"description":"A typed error. `error.code` is stable; see `x-sx-contract.errorCodes` for the HTTP status of each.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"schemas":{"Usd":{"type":"string","description":"US dollars, exact, 6 decimals.","pattern":"^-?[0-9]+\\.[0-9]{6}$"},"UsdInput":{"type":"string","description":"US dollars as a plain decimal with at most 6 decimals.","pattern":"^[0-9]{1,12}(\\.[0-9]{1,6})?$"},"Bps":{"type":"string","description":"Basis points, exact to hundredths (bps x 100 internally).","pattern":"^-?[0-9]+\\.[0-9]{2}$"},"BpsX100":{"type":"string","description":"Hundredths of a basis point, as an integer string.","pattern":"^-?[0-9]+$"},"RatioValue":{"type":"string","description":"Shares per token, exact, 18 decimals.","pattern":"^[0-9]+\\.[0-9]{18}$"},"SharesValue":{"type":"string","description":"Share-equivalents, exact, 18 decimals.","pattern":"^-?[0-9]+\\.[0-9]{18}$"},"UintString":{"type":"string","description":"Unsigned integer in smallest units, as a string.","pattern":"^[0-9]+$"},"IntString":{"type":"string","pattern":"^-?[0-9]+$"},"Address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"Hex32":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"},"HexData":{"type":"string","pattern":"^0x[0-9a-fA-F]*$"},"Timestamp":{"type":"string","format":"date-time"},"Issuer":{"type":"string","enum":["bstock","ondo","xstock"]},"ExposureKind":{"type":"string","enum":["EQ","ETF"]},"Session":{"type":"string","enum":["REGULAR","PRE","POST","OVERNIGHT","OFFHOURS_WEEKEND","CLOSED","HALT","PAUSE_CORPORATE_ACTION","PAUSE_EARNINGS"]},"ReferenceGroup":{"type":"string","enum":["G1_CEX_BOOK","G2_HIP3","G3_ONCHAIN_MAKER","G4_LICENSED","G5_EQUITY_STREAM"]},"ReferenceKind":{"type":"string","enum":["hip3_oracle","hip3_mark","cex_bstock_mid","equity_last"],"default":"hip3_oracle"},"Tier":{"type":"string","enum":["LAUNCH","READ_ONLY","EDUCATION_ONLY","PROHIBITED","UNKNOWN"]},"ProvenanceLabel":{"type":"string","description":"OBSERVED: a venue print or book that passes its freshness rule. OBSERVED_STALE: an observation that does not.\nMODEL: modelled from observations. DERIVED: computed by us from our own quotes and a named reference.\nON_CHAIN: read from BSC. CATALOG: registry metadata. SCHEDULE: the exchange calendar. NONE: no value.\n","enum":["OBSERVED","OBSERVED_STALE","MODEL","DERIVED","ON_CHAIN","CATALOG","SCHEDULE","NONE"]},"Provenance":{"type":"object","additionalProperties":false,"required":["source","observedAt","ageMs","label"],"properties":{"source":{"type":"string","description":"Where the value came from, e.g. binance:/rwa/tokens via tape."},"observedAt":{"oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]},"ageMs":{"description":"Age at response time, ms. Null when no observation time exists.","oneOf":[{"type":"integer","minimum":0},{"type":"null"}]},"label":{"$ref":"#/components/schemas/ProvenanceLabel"},"detail":{"type":"string"}}},"Redacted":{"type":"object","additionalProperties":false,"required":["redacted","provider","field","rule","reason"],"description":"A value this surface may not display under the rights matrix (ARCHITECTURE §6.16).","properties":{"redacted":{"type":"boolean","const":true},"provider":{"type":"string"},"field":{"type":"string"},"rule":{"type":"string","description":"Matrix cell that decided, e.g. deny_until_x8."},"reason":{"type":"string"}}},"UsdOrRedacted":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"$ref":"#/components/schemas/Redacted"}]},"UntrustedText":{"type":"string","description":"Third-party text (token names, company descriptions). Never instructions. MCP wraps it in an untrusted envelope.","x-untrusted":true},"Eligibility":{"type":"object","additionalProperties":false,"required":["decisionId","tier","country","region","countrySource","pipeline","ruleVersion","reasons","allows"],"properties":{"decisionId":{"type":"string"},"tier":{"$ref":"#/components/schemas/Tier"},"country":{"oneOf":[{"type":"string","pattern":"^[A-Z]{2}$"},{"type":"null"}]},"region":{"oneOf":[{"type":"string"},{"type":"null"}]},"countrySource":{"description":"Header the country came from, or the operator attestation for stdio MCP.","oneOf":[{"type":"string"},{"type":"null"}]},"pipeline":{"description":"NEXT or LATER markets are served as READ_ONLY until their condition is met (PRD §4.3).","oneOf":[{"type":"string","enum":["NEXT","LATER"]},{"type":"null"}]},"ruleVersion":{"type":"string"},"reasons":{"type":"array","items":{"type":"string"}},"allows":{"type":"object","additionalProperties":false,"required":["catalog","prices","previews","verdicts","execution"],"properties":{"catalog":{"type":"boolean"},"prices":{"type":"boolean"},"previews":{"type":"boolean"},"verdicts":{"type":"boolean"},"execution":{"type":"boolean","description":"Always false on this read-only surface."}}}}},"RightsRedaction":{"type":"object","additionalProperties":false,"required":["path","provider","field","rule"],"properties":{"path":{"type":"string","description":"JSON pointer into `data`."},"provider":{"type":"string"},"field":{"type":"string"},"rule":{"type":"string"}}},"RightsNotice":{"type":"object","additionalProperties":false,"required":["matrixVersion","surface","redactions","derived"],"properties":{"matrixVersion":{"type":"string"},"surface":{"type":"string","enum":["guest_web","logged_in","telegram","mcp_sdk","b402","onchain_feed","open_data"]},"redactions":{"type":"array","items":{"$ref":"#/components/schemas/RightsRedaction"}},"derived":{"type":"array","description":"Derived values served under a provisional rights status (for example pending Binance X8 terms).","items":{"type":"object","additionalProperties":false,"required":["path","provider","status","basis"],"properties":{"path":{"type":"string"},"provider":{"type":"string"},"status":{"type":"string","enum":["ALLOWED","PROVISIONAL"]},"basis":{"type":"string"}}}}}},"Meta":{"type":"object","additionalProperties":false,"required":["requestId","generatedAt","apiVersion","surface","eligibility","rights"],"properties":{"requestId":{"type":"string"},"generatedAt":{"$ref":"#/components/schemas/Timestamp"},"apiVersion":{"type":"string"},"surface":{"type":"string"},"eligibility":{"$ref":"#/components/schemas/Eligibility"},"rights":{"$ref":"#/components/schemas/RightsNotice"},"payment":{"description":"Present on a paid call that delivered, with its settlement. Also in the PAYMENT-RESPONSE header (MCP _meta[\"x402/payment-response\"]).","$ref":"#/components/schemas/PaymentReceipt"}}},"Upstream":{"type":"object","additionalProperties":false,"required":["provider","code","category","message","action","retryable"],"properties":{"provider":{"type":"string","enum":["binance","hyperliquid","binance-spot","bsc-rpc","clickhouse","anvil"]},"code":{"oneOf":[{"type":"string"},{"type":"null"}]},"category":{"description":"Binance catalog category (PARAMETER, AUTH, RATE_LIMIT, REGION, QUOTE, SWAP, EQUITY_TOKEN, ...).","oneOf":[{"type":"string"},{"type":"null"}]},"message":{"oneOf":[{"type":"string"},{"type":"null"}]},"action":{"oneOf":[{"type":"string"},{"type":"null"}]},"retryable":{"oneOf":[{"type":"boolean"},{"type":"null"}]}}},"EducationTopic":{"type":"object","additionalProperties":false,"required":["id","title","summary"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"}}},"ErrorCode":{"type":"string","enum":["VALIDATION_FAILED","NOT_FOUND","COMPANY_NOT_FOUND","INSTRUMENT_NOT_FOUND","AMBIGUOUS_INSTRUMENT","ELIGIBILITY_EDUCATION_ONLY","ELIGIBILITY_COUNTRY_UNKNOWN","ELIGIBILITY_PROHIBITED","RATE_LIMITED","REGISTRY_UNAVAILABLE","TAPE_UNAVAILABLE","UPSTREAM_UNAVAILABLE","UPSTREAM_REJECTED","EDGE_HALTED","INTERNAL_ERROR","PAYMENT_REQUIRED","PAYMENT_INVALID","PAYMENT_SETTLEMENT_FAILED","INTENT_NOT_FOUND","INTENT_STATE_CONFLICT","IDEMPOTENCY_CONFLICT","CONFIRM_TOKEN_INVALID","CONFIRM_TOKEN_EXPIRED","CONFIRM_TOKEN_REPLAYED","OWNER_SIGNATURE_REQUIRED","OWNER_SIGNATURE_INVALID","SIGNED_TX_MISMATCH","STEP_EXPIRED","DOUBLE_SUBMIT","POLICY_INVALID","CUSTODY_NOT_AVAILABLE","EXECUTION_UNAVAILABLE","PAYMENTS_UNAVAILABLE"]},"ErrorResponse":{"type":"object","additionalProperties":false,"required":["error","meta"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","status","retryable"],"properties":{"code":{"$ref":"#/components/schemas/ErrorCode"},"message":{"type":"string"},"status":{"type":"integer"},"retryable":{"type":"boolean"},"retryAfterSec":{"type":"integer","minimum":0},"details":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["path","message"],"properties":{"path":{"type":"string"},"message":{"type":"string"}}}},"upstream":{"$ref":"#/components/schemas/Upstream"},"education":{"type":"array","items":{"$ref":"#/components/schemas/EducationTopic"}}}},"payment":{"description":"With PAYMENT_REQUIRED, PAYMENT_INVALID and PAYMENT_SETTLEMENT_FAILED, what to pay (x402 v2 PaymentRequired). The same object is in the PAYMENT-REQUIRED header.","$ref":"#/components/schemas/PaymentRequired"},"preview":{"description":"With PAYMENT_REQUIRED, the free preview of the deliverable.","$ref":"#/components/schemas/FreePreview"},"settlement":{"description":"With PAYMENT_SETTLEMENT_FAILED, what B402 answered (x402 v2 SettlementResponse).","$ref":"#/components/schemas/PaymentReceipt"},"meta":{"$ref":"#/components/schemas/Meta"}}},"PaymentRequirements":{"type":"object","additionalProperties":false,"required":["scheme","network","amount","asset","payTo","maxTimeoutSeconds","extra"],"properties":{"scheme":{"type":"string","enum":["exact"]},"network":{"type":"string","description":"CAIP-2 network id; eip155:56 is BNB Smart Chain."},"amount":{"type":"string","pattern":"^[0-9]{1,78}$","description":"Smallest token units (18 decimals for U and USD1)."},"asset":{"$ref":"#/components/schemas/Address"},"payTo":{"$ref":"#/components/schemas/Address"},"maxTimeoutSeconds":{"type":"integer","minimum":1},"extra":{"type":"object","additionalProperties":true,"description":"From B402 /supported: EIP-712 name and version, assetTransferMethod, signer and spender addresses. Sign and send it back unchanged."}}},"PaymentRequired":{"type":"object","additionalProperties":false,"required":["x402Version","error","resource","accepts"],"properties":{"x402Version":{"type":"integer","const":2},"error":{"type":"string"},"resource":{"type":"object","additionalProperties":false,"required":["url","description","mimeType"],"properties":{"url":{"type":"string"},"description":{"type":"string"},"mimeType":{"type":"string"}}},"accepts":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/PaymentRequirements"}}}},"PaymentReceipt":{"type":"object","additionalProperties":false,"required":["success","transaction","network","amount","replay"],"properties":{"success":{"type":"boolean"},"transaction":{"type":"string","description":"Settlement transaction hash; empty when nothing was broadcast."},"network":{"type":"string"},"payer":{"type":"string"},"amount":{"type":"string"},"errorReason":{"type":"string"},"replay":{"type":"boolean","description":"True when the same payment came again and the cached deliverable was returned with no second settlement."}}},"FreePreview":{"type":"object","additionalProperties":false,"required":["summary","data","paidAdds","priceUsd"],"properties":{"summary":{"type":"string","description":"One line a person can read."},"data":{"type":"object","additionalProperties":true,"description":"A small real sample of the deliverable, from recorded data; never invented."},"paidAdds":{"type":"array","items":{"type":"string"},"description":"What the paid call adds to this preview."},"priceUsd":{"type":"string"}}},"CompanySummary":{"type":"object","additionalProperties":false,"required":["ticker","exposure","kind","name","assetType","issuers","instrumentCount","provenance"],"properties":{"ticker":{"type":"string"},"exposure":{"type":"string","pattern":"^(EQ|ETF):[A-Z0-9.\\-]+$"},"kind":{"$ref":"#/components/schemas/ExposureKind"},"name":{"oneOf":[{"$ref":"#/components/schemas/UntrustedText"},{"type":"null"}]},"assetType":{"oneOf":[{"type":"integer","enum":[1,2,3]},{"type":"null"}]},"issuers":{"type":"array","items":{"$ref":"#/components/schemas/Issuer"}},"instrumentCount":{"type":"integer","minimum":0},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"CompanyList":{"type":"object","additionalProperties":false,"required":["items","total","nextCursor","registry"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CompanySummary"}},"total":{"type":"integer","minimum":0,"description":"Matches before paging."},"nextCursor":{"oneOf":[{"type":"string"},{"type":"null"}]},"registry":{"$ref":"#/components/schemas/RegistryStamp"}}},"RegistryStamp":{"type":"object","additionalProperties":false,"required":["savedAt","ageMs","status"],"properties":{"savedAt":{"$ref":"#/components/schemas/Timestamp"},"ageMs":{"type":"integer","minimum":0},"status":{"type":"string","enum":["COMPLETE","REGISTRY_INCOMPLETE","ABORTED","UNKNOWN"]}}},"RatioCorroboration":{"type":"object","additionalProperties":false,"required":["status","detail"],"properties":{"status":{"type":"string","enum":["agrees","not_configured","absent","unavailable","chain_unavailable"]},"detail":{"oneOf":[{"type":"string"},{"type":"null"}]}}},"RatioAvailable":{"type":"object","additionalProperties":false,"required":["available","value","source","block","corroboration","provenance"],"properties":{"available":{"type":"boolean","const":true},"value":{"$ref":"#/components/schemas/RatioValue"},"source":{"type":"string","enum":["bstock.uiMultiplier","ondo.syntheticSharesOracle","xstocks.balanceIsShares","binance.rwaTokens"],"description":"Where the ratio was read. xstocks.balanceIsShares: an xStocks token is always one share, because its multiplier rescales balances (dividends, splits) rather than shares per token; the token's getCurrentMultiplier() is read to confirm the contract."},"block":{"oneOf":[{"$ref":"#/components/schemas/UintString"},{"type":"null"}]},"corroboration":{"$ref":"#/components/schemas/RatioCorroboration"},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"RatioUnavailable":{"type":"object","additionalProperties":false,"required":["available","code","reason"],"properties":{"available":{"type":"boolean","const":false},"code":{"type":"string","enum":["RATIO_DISAGREE","RATIO_IN_TRANSITION","RATIO_UNAVAILABLE","INSTRUMENT_MISMATCH","UNSUPPORTED_ISSUER","DECIMALS_MISMATCH","INVALID_INPUT"]},"reason":{"type":"string"}}},"RatioReading":{"oneOf":[{"$ref":"#/components/schemas/RatioAvailable"},{"$ref":"#/components/schemas/RatioUnavailable"}]},"InstrumentDetail":{"type":"object","additionalProperties":false,"required":["issuer","issuerLabel","symbol","tokenName","address","chainId","decimals","assetType","status","flags","seenIn","ratio","provenance"],"properties":{"issuer":{"$ref":"#/components/schemas/Issuer"},"issuerLabel":{"type":"string"},"symbol":{"$ref":"#/components/schemas/UntrustedText"},"tokenName":{"oneOf":[{"$ref":"#/components/schemas/UntrustedText"},{"type":"null"}]},"address":{"$ref":"#/components/schemas/Address"},"chainId":{"type":"string","const":"56"},"decimals":{"type":"integer","minimum":0,"maximum":36},"assetType":{"oneOf":[{"type":"integer","enum":[1,2,3]},{"type":"null"}]},"status":{"type":"string","enum":["listed","carried"]},"flags":{"type":"array","items":{"type":"string"}},"seenIn":{"type":"array","items":{"type":"string"}},"ratio":{"$ref":"#/components/schemas/RatioReading"},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"CompanyProfile":{"type":"object","additionalProperties":false,"required":["fullName","industry","concepts","website","ceo","description","attestations","provenance"],"properties":{"fullName":{"oneOf":[{"$ref":"#/components/schemas/UntrustedText"},{"type":"null"}]},"industry":{"oneOf":[{"$ref":"#/components/schemas/UntrustedText"},{"type":"null"}]},"concepts":{"type":"array","items":{"$ref":"#/components/schemas/UntrustedText"}},"website":{"oneOf":[{"$ref":"#/components/schemas/UntrustedText"},{"type":"null"}]},"ceo":{"oneOf":[{"$ref":"#/components/schemas/UntrustedText"},{"type":"null"}]},"description":{"oneOf":[{"$ref":"#/components/schemas/UntrustedText"},{"$ref":"#/components/schemas/Redacted"},{"type":"null"}]},"attestations":{"type":"array","description":"Issuer protection documents Binance lists for a wrapper (collateral or attestation reports).","items":{"type":"object","additionalProperties":false,"required":["issuer","kind","supported","url"],"properties":{"issuer":{"$ref":"#/components/schemas/Issuer"},"kind":{"type":"string"},"supported":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"url":{"oneOf":[{"$ref":"#/components/schemas/UntrustedText"},{"type":"null"}]}}}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"IssuerCard":{"type":"object","additionalProperties":false,"required":["issuer","label","instrument","holderRights","sessions","conversion","sources"],"description":"What a holder of this wrapper owns, as documented. Facts, not recommendations.","properties":{"issuer":{"$ref":"#/components/schemas/Issuer"},"label":{"type":"string"},"instrument":{"$ref":"#/components/schemas/UntrustedText"},"holderRights":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","statement","status"],"properties":{"id":{"type":"string"},"statement":{"type":"string"},"status":{"type":"string","enum":["DOCUMENTED","OBSERVED","NOT_VERIFIED"]}}}},"sessions":{"type":"string"},"conversion":{"type":"string"},"sources":{"type":"array","items":{"type":"string"}}}},"CompanyDetail":{"type":"object","additionalProperties":false,"required":["ticker","exposure","kind","name","assetType","profile","instruments","issuerCards","registry","provenance"],"properties":{"ticker":{"type":"string"},"exposure":{"type":"string"},"kind":{"$ref":"#/components/schemas/ExposureKind"},"name":{"oneOf":[{"$ref":"#/components/schemas/UntrustedText"},{"type":"null"}]},"assetType":{"oneOf":[{"type":"integer","enum":[1,2,3]},{"type":"null"}]},"profile":{"oneOf":[{"$ref":"#/components/schemas/CompanyProfile"},{"type":"null"}]},"instruments":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentDetail"}},"issuerCards":{"type":"array","items":{"$ref":"#/components/schemas/IssuerCard"}},"registry":{"$ref":"#/components/schemas/RegistryStamp"},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"ExchangeLayer":{"type":"object","additionalProperties":false,"required":["state","session","scheduled","observed","disagree","notes"],"properties":{"state":{"type":"string","enum":["REGULAR","PRE","POST","OVERNIGHT","CLOSED","HALT","UNKNOWN"]},"session":{"oneOf":[{"$ref":"#/components/schemas/Session"},{"type":"null"}]},"scheduled":{"type":"object","additionalProperties":false,"required":["known","phase","startAt","endAt","closedReason","holiday","provenance"],"properties":{"known":{"type":"boolean"},"phase":{"oneOf":[{"type":"string","enum":["OVERNIGHT","PRE","REGULAR","POST","CLOSED"]},{"type":"null"}]},"startAt":{"oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]},"endAt":{"oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]},"closedReason":{"oneOf":[{"type":"string","enum":["WEEKEND","HOLIDAY","EARLY_CLOSE_GAP"]},{"type":"null"}]},"holiday":{"oneOf":[{"type":"string"},{"type":"null"}]},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"observed":{"oneOf":[{"type":"object","additionalProperties":false,"required":["state","detail","provenance"],"properties":{"state":{"type":"string","enum":["REGULAR","PRE","POST","OVERNIGHT","CLOSED","HALT","UNKNOWN"]},"detail":{"oneOf":[{"type":"string"},{"type":"null"}]},"provenance":{"$ref":"#/components/schemas/Provenance"}}},{"type":"null"}]},"disagree":{"type":"boolean"},"notes":{"type":"array","items":{"type":"string"}}}},"IssuerLayer":{"type":"object","additionalProperties":false,"required":["state","session","reasonCode","nextEdgeAt","assetLevel","stale","notes","provenance"],"properties":{"state":{"type":"string","enum":["TRADING","OFFHOURS","CLOSED","PAUSED","LIMITED","UNKNOWN"]},"session":{"oneOf":[{"$ref":"#/components/schemas/Session"},{"type":"null"}]},"reasonCode":{"oneOf":[{"type":"string"},{"type":"null"}]},"nextEdgeAt":{"description":"The issuer's own next session edge. Never the NYSE open.","oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]},"assetLevel":{"type":"boolean"},"stale":{"type":"boolean"},"notes":{"type":"array","items":{"type":"string"}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"RouteLayer":{"type":"object","additionalProperties":false,"required":["executable","session","stale","notes","provenance"],"properties":{"executable":{"type":"boolean"},"session":{"oneOf":[{"$ref":"#/components/schemas/Session"},{"type":"null"}]},"stale":{"type":"boolean"},"notes":{"type":"array","items":{"type":"string"}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"InstrumentClock":{"type":"object","additionalProperties":false,"required":["issuer","symbol","address","session","disagree","disagreements","summary","issuerLayer","routeLayer"],"properties":{"issuer":{"$ref":"#/components/schemas/Issuer"},"symbol":{"$ref":"#/components/schemas/UntrustedText"},"address":{"$ref":"#/components/schemas/Address"},"session":{"$ref":"#/components/schemas/Session"},"disagree":{"type":"boolean"},"disagreements":{"type":"array","items":{"type":"string"}},"summary":{"type":"string","description":"One line with all three layers, e.g. NYSE closed (weekend) · Ondo off-hours open · route executable."},"issuerLayer":{"$ref":"#/components/schemas/IssuerLayer"},"routeLayer":{"$ref":"#/components/schemas/RouteLayer"}}},"Clock":{"type":"object","additionalProperties":false,"required":["ticker","exposure","exchange","instruments","nextRegularOpenAt","nextExchangeEdgeAt"],"properties":{"ticker":{"type":"string"},"exposure":{"type":"string"},"exchange":{"$ref":"#/components/schemas/ExchangeLayer"},"instruments":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentClock"}},"nextRegularOpenAt":{"description":"Next NYSE regular open (09:30 ET) from the exchange calendar.","oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]},"nextExchangeEdgeAt":{"oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]}}},"ReferenceObservation":{"type":"object","additionalProperties":false,"required":["group","source","kind","price","spreadBps","counts","freshnessReasons","ratioUsed","provenance"],"properties":{"group":{"$ref":"#/components/schemas/ReferenceGroup"},"source":{"type":"string"},"kind":{"type":"string","enum":["trade","book_mid","oracle","mark","impact_mid","close"]},"price":{"$ref":"#/components/schemas/UsdOrRedacted"},"spreadBps":{"oneOf":[{"$ref":"#/components/schemas/Bps"},{"type":"null"}]},"counts":{"type":"boolean","description":"True when it may vote as OBSERVED under its group's freshness rule."},"freshnessReasons":{"type":"array","items":{"type":"string"}},"ratioUsed":{"oneOf":[{"type":"object","additionalProperties":false,"required":["value","source","asOf"],"properties":{"value":{"$ref":"#/components/schemas/RatioValue"},"source":{"type":"string"},"asOf":{"$ref":"#/components/schemas/Timestamp"}}},{"type":"null"}]},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"FairValueBandCalibration":{"type":"object","additionalProperties":false,"required":["status"],"description":"CALIBRATED: the band is a split-conformal quantile fitted on graded promises for this (session, horizon) cell\nthat passed its held-out coverage test, so price ± band claims `nominalCoverageBps` at `horizon`. PROVISIONAL: no\nsuch evidence yet; the band claims no coverage and a model value may only make a Verdict more cautious. A model\nfair value is published to people only when CALIBRATED.\n","properties":{"status":{"type":"string","enum":["CALIBRATED","PROVISIONAL"]},"nominalCoverageBps":{"type":"integer","minimum":1,"maximum":9999,"description":"Present only when CALIBRATED (9000 = 90%)."},"horizon":{"type":"string","maxLength":64,"description":"Horizon the band claims coverage at, e.g. PT1H or NEXT_REGULAR_OPEN."},"cell":{"type":"string","maxLength":128,"description":"Calibration cell, SESSION|HORIZON."},"calibrationHash":{"$ref":"#/components/schemas/Hex32"}}},"FairValueCandidate":{"type":"object","additionalProperties":false,"required":["model","price","inputs"],"properties":{"model":{"type":"string"},"price":{"$ref":"#/components/schemas/UsdOrRedacted"},"inputs":{"type":"array","items":{"type":"string"}}}},"FairValue":{"type":"object","additionalProperties":false,"required":["label","price","model","bandBps","bandCalibration","inputsHash","selection","reasons","candidates","provenance"],"properties":{"label":{"type":"string","enum":["OBSERVED","MODEL","NONE"]},"price":{"oneOf":[{"$ref":"#/components/schemas/UsdOrRedacted"},{"type":"null"}]},"model":{"oneOf":[{"type":"string"},{"type":"null"}]},"bandBps":{"description":"Half-width of the band. It claims a coverage only when `bandCalibration.status` is CALIBRATED; a PROVISIONAL\nband is a typical error, not a confidence interval.\n","oneOf":[{"$ref":"#/components/schemas/Bps"},{"type":"null"}]},"bandCalibration":{"description":"Whether the band is a tested coverage claim. Null when there is no fair value.","oneOf":[{"$ref":"#/components/schemas/FairValueBandCalibration"},{"type":"null"}]},"inputsHash":{"oneOf":[{"type":"string"},{"type":"null"}]},"selection":{"description":"How the model was chosen. Publication follows `bandCalibration`, not this field.","oneOf":[{"type":"string","enum":["OBSERVED","GRADED","PRIOR_ORDER"]},{"type":"null"}]},"reasons":{"type":"array","items":{"type":"string"}},"candidates":{"type":"array","items":{"$ref":"#/components/schemas/FairValueCandidate"}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"References":{"type":"object","additionalProperties":false,"required":["ticker","exposure","session","observations","unavailable","fairValue"],"properties":{"ticker":{"type":"string"},"exposure":{"type":"string"},"session":{"description":"The exchange-layer session used to choose between OBSERVED and MODEL fair value.","$ref":"#/components/schemas/Session"},"observations":{"type":"array","items":{"$ref":"#/components/schemas/ReferenceObservation"}},"unavailable":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["group","source","reason"],"properties":{"group":{"$ref":"#/components/schemas/ReferenceGroup"},"source":{"type":"string"},"reason":{"type":"string"}}}},"fairValue":{"$ref":"#/components/schemas/FairValue"}}},"PremiumStats":{"type":"object","additionalProperties":false,"required":["p25","median","p75","min","max"],"properties":{"p25":{"$ref":"#/components/schemas/Bps"},"median":{"$ref":"#/components/schemas/Bps"},"p75":{"$ref":"#/components/schemas/Bps"},"min":{"$ref":"#/components/schemas/Bps"},"max":{"$ref":"#/components/schemas/Bps"}}},"PremiumBucket":{"type":"object","additionalProperties":false,"required":["issuer","symbol","sizeUsd","session","quotes","n","excluded","premiumBps","execPerShareMedian","referencePerShareMedian","referenceAgeMsMedian","firstAt","lastAt","provenance"],"properties":{"issuer":{"type":"string"},"symbol":{"oneOf":[{"$ref":"#/components/schemas/UntrustedText"},{"type":"null"}]},"sizeUsd":{"$ref":"#/components/schemas/Usd"},"session":{"type":"string","enum":["PRE","REGULAR","POST","OVERNIGHT","OFFHOURS_WEEKEND"]},"quotes":{"type":"integer","minimum":0,"description":"Every recorded quote in the bucket, usable or not."},"n":{"type":"integer","minimum":0,"description":"Quotes with a computed premium."},"excluded":{"type":"object","description":"Why the other quotes have no premium.","additionalProperties":{"type":"integer","minimum":0}},"premiumBps":{"description":"Null when n is 0. An absent premium is never reported as zero.","oneOf":[{"$ref":"#/components/schemas/PremiumStats"},{"type":"null"}]},"execPerShareMedian":{"description":"Our executable per-share price (median), from our own quotes.","oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"referencePerShareMedian":{"oneOf":[{"$ref":"#/components/schemas/UsdOrRedacted"},{"type":"null"}]},"referenceAgeMsMedian":{"oneOf":[{"type":"integer"},{"type":"null"}]},"firstAt":{"$ref":"#/components/schemas/Timestamp"},"lastAt":{"$ref":"#/components/schemas/Timestamp"},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"Premium":{"type":"object","additionalProperties":false,"required":["ticker","reference","side","window","method","buckets"],"properties":{"ticker":{"type":"string"},"reference":{"type":"object","additionalProperties":false,"required":["kind","group","provider","description"],"properties":{"kind":{"$ref":"#/components/schemas/ReferenceKind"},"group":{"$ref":"#/components/schemas/ReferenceGroup"},"provider":{"type":"string"},"description":{"type":"string"}}},"side":{"type":"string","enum":["buy","sell"]},"window":{"type":"object","additionalProperties":false,"required":["from","to"],"properties":{"from":{"$ref":"#/components/schemas/Timestamp"},"to":{"$ref":"#/components/schemas/Timestamp"}}},"method":{"type":"string"},"buckets":{"type":"array","items":{"$ref":"#/components/schemas/PremiumBucket"}}}},"PreviewBuyRequest":{"type":"object","additionalProperties":false,"required":["ticker","amountUsd","inputToken"],"properties":{"ticker":{"type":"string","pattern":"^[A-Za-z0-9.\\-]{1,16}$"},"issuer":{"$ref":"#/components/schemas/Issuer","description":"Which wrapper. Required when the company has more than one previewable wrapper and no address is given."},"address":{"$ref":"#/components/schemas/Address","description":"The wrapper's contract; must be a listed instrument of the ticker."},"amountUsd":{"$ref":"#/components/schemas/UsdInput"},"inputToken":{"type":"string","enum":["USDT","BNB"],"description":"BNB previews run on Binance /simulate; USDT previews run on a BSC fork (the public holders have not approved the router)."},"path":{"type":"string","enum":["auto","binance-simulate","anvil-fork"],"default":"auto"},"slippagePercent":{"type":"string","pattern":"^[0-9]{1,2}(\\.[0-9]{1,2})?$","default":"1"}}},"TokenAmount":{"type":"object","additionalProperties":false,"required":["raw","decimals"],"properties":{"raw":{"$ref":"#/components/schemas/UintString"},"decimals":{"type":"integer","minimum":0,"maximum":36}}},"PreviewRoute":{"type":"object","additionalProperties":false,"required":["quoteId","vendor","executionMode","hops","makers","quotedTokensOut","minReceive","txTo","approveTarget","tradeFeeUsd","priceImpactPercent","slippagePercent"],"properties":{"quoteId":{"type":"string"},"vendor":{"$ref":"#/components/schemas/UntrustedText"},"executionMode":{"type":"string"},"hops":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["dex","percent"],"properties":{"dex":{"$ref":"#/components/schemas/UntrustedText"},"percent":{"oneOf":[{"type":"string"},{"type":"null"}]}}}},"makers":{"type":"array","items":{"$ref":"#/components/schemas/UntrustedText"}},"quotedTokensOut":{"$ref":"#/components/schemas/UintString"},"minReceive":{"oneOf":[{"$ref":"#/components/schemas/UintString"},{"type":"null"}]},"txTo":{"$ref":"#/components/schemas/Address"},"approveTarget":{"oneOf":[{"$ref":"#/components/schemas/Address"},{"type":"null"}]},"tradeFeeUsd":{"oneOf":[{"type":"string"},{"type":"null"}]},"priceImpactPercent":{"oneOf":[{"type":"string"},{"type":"null"}]},"slippagePercent":{"type":"string"}}},"PreviewWarning":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"PreviewSuccess":{"type":"object","additionalProperties":false,"required":["outcome","ticker","issuer","instrument","path","inputToken","amountIn","tokensOut","shares","costUsd","perShareUsd","costBasis","vsQuoteBps","gasUsd","requiredApproval","ratio","route","previewWallet","warnings","latencyMs","builtAt","simulatedAt","statement","provenance"],"properties":{"outcome":{"type":"string","const":"SUCCESS"},"ticker":{"type":"string"},"issuer":{"$ref":"#/components/schemas/Issuer"},"instrument":{"type":"object","additionalProperties":false,"required":["address","symbol","decimals"],"properties":{"address":{"$ref":"#/components/schemas/Address"},"symbol":{"$ref":"#/components/schemas/UntrustedText"},"decimals":{"type":"integer"}}},"path":{"type":"string","enum":["binance-simulate","anvil-fork"]},"inputToken":{"type":"string","enum":["USDT","BNB"]},"amountIn":{"$ref":"#/components/schemas/TokenAmount"},"tokensOut":{"$ref":"#/components/schemas/TokenAmount"},"shares":{"$ref":"#/components/schemas/SharesValue"},"costUsd":{"$ref":"#/components/schemas/Usd"},"perShareUsd":{"$ref":"#/components/schemas/Usd"},"costBasis":{"type":"object","additionalProperties":false,"required":["kind","detail"],"properties":{"kind":{"type":"string","enum":["USDT_AT_PAR","CHAINLINK_BNB_USD","BINANCE_QUOTE_UNIT_PRICE"]},"detail":{"oneOf":[{"type":"string"},{"type":"null"}]}}},"vsQuoteBps":{"$ref":"#/components/schemas/Bps"},"gasUsd":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"requiredApproval":{"oneOf":[{"type":"object","additionalProperties":false,"required":["token","spender","amount","verified"],"properties":{"token":{"$ref":"#/components/schemas/Address"},"spender":{"$ref":"#/components/schemas/Address"},"amount":{"$ref":"#/components/schemas/UintString"},"verified":{"type":"boolean"}}},{"type":"null"}]},"ratio":{"type":"object","additionalProperties":false,"required":["value","source","observedAt"],"properties":{"value":{"$ref":"#/components/schemas/RatioValue"},"source":{"type":"string"},"observedAt":{"$ref":"#/components/schemas/Timestamp"}}},"route":{"$ref":"#/components/schemas/PreviewRoute"},"previewWallet":{"type":"object","additionalProperties":false,"required":["address","label","source"],"properties":{"address":{"$ref":"#/components/schemas/Address"},"label":{"type":"string"},"source":{"type":"string","enum":["public-holder","own-preview-wallet"]}}},"warnings":{"type":"array","items":{"$ref":"#/components/schemas/PreviewWarning"}},"latencyMs":{"type":"object","additionalProperties":false,"required":["total","quote","swap","execute","buildToSimulate"],"properties":{"total":{"type":"integer"},"quote":{"type":"integer"},"swap":{"type":"integer"},"execute":{"type":"integer"},"buildToSimulate":{"type":"integer"}}},"builtAt":{"$ref":"#/components/schemas/Timestamp"},"simulatedAt":{"$ref":"#/components/schemas/Timestamp"},"statement":{"type":"string","description":"Plain statement of what this is, e.g. 'Simulation only. Nothing was bought.'"},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"PreviewFailure":{"type":"object","additionalProperties":false,"required":["outcome","ticker","kind","message","path","upstream","failReason","route","at","latencyMs","warnings"],"properties":{"outcome":{"type":"string","const":"FAILURE"},"ticker":{"type":"string"},"issuer":{"$ref":"#/components/schemas/Issuer"},"kind":{"type":"string","enum":["INVALID_REQUEST","NO_ROUTE","RWA_NO_LIQUIDITY","PAIR_NOT_ALLOWED","MARKET_CLOSED","ORDER_SIZE_LIMIT","QUOTE_REJECTED","QUOTE_EXPIRED","SWAP_BUILD_FAILED","RFQ_NOT_SIMULATABLE","SIMULATION_FAILED","OUTPUT_NOT_OBSERVED","NO_FUNDED_PREVIEW_WALLET","PRICE_UNAVAILABLE","FORK_UNAVAILABLE","FORK_EXECUTION_REVERTED","EDGE_UNAVAILABLE","RATIO_UNAVAILABLE","NOT_PREVIEWABLE"]},"message":{"type":"string"},"path":{"oneOf":[{"type":"string","enum":["binance-simulate","anvil-fork"]},{"type":"null"}]},"upstream":{"oneOf":[{"$ref":"#/components/schemas/Upstream"},{"type":"null"}]},"failReason":{"oneOf":[{"type":"string"},{"type":"null"}]},"route":{"oneOf":[{"$ref":"#/components/schemas/PreviewRoute"},{"type":"null"}]},"at":{"$ref":"#/components/schemas/Timestamp"},"latencyMs":{"type":"integer","minimum":0},"warnings":{"type":"array","items":{"$ref":"#/components/schemas/PreviewWarning"}}}},"PreviewOutcome":{"oneOf":[{"$ref":"#/components/schemas/PreviewSuccess"},{"$ref":"#/components/schemas/PreviewFailure"}],"discriminator":{"propertyName":"outcome","mapping":{"SUCCESS":"#/components/schemas/PreviewSuccess","FAILURE":"#/components/schemas/PreviewFailure"}}},"KnownUsdValue":{"type":"object","additionalProperties":false,"required":["known","value"],"properties":{"known":{"type":"boolean","const":true},"value":{"$ref":"#/components/schemas/UsdInput"}}},"KnownUsd":{"oneOf":[{"$ref":"#/components/schemas/KnownUsdValue"},{"$ref":"#/components/schemas/UnknownValue"}]},"KnownRatioValue":{"type":"object","additionalProperties":false,"required":["known","value"],"properties":{"known":{"type":"boolean","const":true},"value":{"type":"string","pattern":"^[0-9]{1,6}(\\.[0-9]{1,18})?$"}}},"KnownRatio":{"oneOf":[{"$ref":"#/components/schemas/KnownRatioValue"},{"$ref":"#/components/schemas/UnknownValue"}]},"UnknownValue":{"type":"object","additionalProperties":false,"required":["known","reason"],"properties":{"known":{"type":"boolean","const":false},"reason":{"type":"string","minLength":1}}},"VerdictObservationInput":{"type":"object","additionalProperties":false,"required":["group","source","price","observedAtMs"],"properties":{"group":{"$ref":"#/components/schemas/ReferenceGroup"},"source":{"type":"string","minLength":1,"maxLength":128},"price":{"$ref":"#/components/schemas/UsdInput"},"observedAtMs":{"type":"integer","minimum":0},"spreadBpsX100":{"$ref":"#/components/schemas/BpsX100"},"venueId":{"type":"string","maxLength":128},"sizeUsd":{"$ref":"#/components/schemas/UsdInput"},"marketOpen":{"type":"boolean"},"providerRulesPass":{"type":"boolean"}}},"SimulationSuccess":{"type":"object","additionalProperties":false,"required":["status","simHash","quotedOut","simulatedOut","allowanceExcess"],"properties":{"status":{"type":"string","const":"SUCCESS"},"simHash":{"$ref":"#/components/schemas/Hex32"},"quotedOut":{"$ref":"#/components/schemas/UintString"},"simulatedOut":{"$ref":"#/components/schemas/UintString"},"allowanceExcess":{"type":"boolean"}}},"SimulationFailed":{"type":"object","additionalProperties":false,"required":["status","simHash","reason"],"properties":{"status":{"type":"string","const":"FAILED"},"simHash":{"$ref":"#/components/schemas/Hex32"},"reason":{"type":"string"}}},"SimulationNotRun":{"type":"object","additionalProperties":false,"required":["status","reason"],"properties":{"status":{"type":"string","const":"NOT_RUN"},"reason":{"type":"string"}}},"VerdictSnapshot":{"type":"object","additionalProperties":false,"description":"The VerdictInput of `@sx/verdict` in wire form. USD as decimals (at most 6 places), bps as hundredths, token amounts in smallest units.","required":["ticker","session","issuer","side","route","observations","fairValue","sizeUsd","sizeCeiling","amountIn","tokenOutDecimals","ratio","simulation","hazards","nonBlocking"],"properties":{"ticker":{"type":"string","pattern":"^[A-Za-z0-9.\\-]{1,16}$"},"session":{"$ref":"#/components/schemas/Session"},"issuer":{"$ref":"#/components/schemas/Issuer"},"side":{"type":"string","enum":["BUY","SELL"]},"route":{"type":"object","additionalProperties":false,"required":["perSharePrice","makerIds","routeHash","quoteHash","quotedAtMs","validUntilMs"],"properties":{"perSharePrice":{"$ref":"#/components/schemas/KnownUsd"},"makerIds":{"type":"array","maxItems":32,"items":{"type":"string","maxLength":128}},"routeHash":{"$ref":"#/components/schemas/Hex32"},"quoteHash":{"$ref":"#/components/schemas/Hex32"},"quotedAtMs":{"type":"integer","minimum":0},"validUntilMs":{"type":"integer","minimum":0}}},"observations":{"type":"array","maxItems":64,"items":{"$ref":"#/components/schemas/VerdictObservationInput"}},"fairValue":{"oneOf":[{"type":"object","additionalProperties":false,"required":["price","label","model","bandBpsX100","inputsHash"],"properties":{"price":{"$ref":"#/components/schemas/UsdInput"},"label":{"type":"string","enum":["OBSERVED","OBSERVED_THIN","MODEL","NONE"]},"model":{"type":"string","maxLength":128},"bandBpsX100":{"$ref":"#/components/schemas/BpsX100"},"inputsHash":{"$ref":"#/components/schemas/HexData"},"bandCalibration":{"description":"The band's calibration as `getReferences` returned it. Absent means PROVISIONAL, which can only make the decision more cautious.","$ref":"#/components/schemas/FairValueBandCalibration"}}},{"type":"null"}]},"nowMs":{"type":"integer","minimum":0,"description":"Evaluation time. Defaults to the server's clock; supply it to replay a decision exactly."},"sizeUsd":{"$ref":"#/components/schemas/UsdInput"},"sizeCeiling":{"$ref":"#/components/schemas/KnownUsd"},"amountIn":{"$ref":"#/components/schemas/TokenAmount"},"tokenOutDecimals":{"type":"integer","minimum":0,"maximum":36},"ratio":{"$ref":"#/components/schemas/KnownRatio"},"simulation":{"oneOf":[{"$ref":"#/components/schemas/SimulationSuccess"},{"$ref":"#/components/schemas/SimulationFailed"},{"$ref":"#/components/schemas/SimulationNotRun"}]},"hazards":{"type":"object","additionalProperties":false,"required":["honeypot","taxRateBpsX100","notAShare","assetPaused","multiplierActivationsMs","ratioDisagree","ondoOffhoursAboveSize"],"properties":{"honeypot":{"type":"boolean"},"taxRateBpsX100":{"$ref":"#/components/schemas/BpsX100"},"notAShare":{"type":"boolean"},"assetPaused":{"type":"boolean"},"multiplierActivationsMs":{"type":"array","maxItems":32,"items":{"type":"integer","minimum":0}},"ratioDisagree":{"type":"boolean"},"ondoOffhoursAboveSize":{"type":"boolean"}}},"nonBlocking":{"type":"object","additionalProperties":false,"required":["singleVenue","clockDisagree","rpcDegraded"],"properties":{"singleVenue":{"type":"boolean"},"clockDisagree":{"type":"boolean"},"rpcDegraded":{"type":"boolean"}}}}},"VerdictRequest":{"type":"object","additionalProperties":false,"required":["snapshot"],"properties":{"snapshot":{"$ref":"#/components/schemas/VerdictSnapshot"}}},"KnownOutValue":{"type":"object","additionalProperties":false,"required":["known","value"],"properties":{"known":{"type":"boolean","const":true},"value":{"type":"string"}}},"KnownOut":{"oneOf":[{"$ref":"#/components/schemas/KnownOutValue"},{"$ref":"#/components/schemas/UnknownValue"}]},"VerdictEvaluation":{"type":"object","additionalProperties":false,"required":["decision","reasons","ticker","session","side","devABps","devBBps","observedMedian","fairValue","groupsUsed","routePerSharePrice","groupVotes","devFarthestVoteBps","groupSpreadBps","observations","minSharesOut","minOut","maxPremiumBps","sizeCeilingUsd","sizeCeilingSource","validUntilMs","policyHash","inputsHash","routeHash","quoteHash","simHash","notes"],"properties":{"decision":{"type":"string","enum":["GO","CAUTION","BLOCK"]},"reasons":{"type":"array","items":{"type":"string"}},"ticker":{"type":"string"},"session":{"$ref":"#/components/schemas/Session"},"side":{"type":"string","enum":["BUY","SELL"]},"devABps":{"oneOf":[{"$ref":"#/components/schemas/Bps"},{"type":"null"}]},"devBBps":{"oneOf":[{"$ref":"#/components/schemas/Bps"},{"type":"null"}]},"observedMedian":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"fairValue":{"oneOf":[{"type":"object","additionalProperties":false,"required":["price","label","model","bandBps","bandCalibration"],"properties":{"price":{"$ref":"#/components/schemas/Usd"},"label":{"type":"string"},"model":{"type":"string"},"bandBps":{"$ref":"#/components/schemas/Bps"},"bandCalibration":{"$ref":"#/components/schemas/FairValueBandCalibration"}}},{"type":"null"}]},"groupsUsed":{"type":"array","items":{"$ref":"#/components/schemas/ReferenceGroup"}},"routePerSharePrice":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"groupVotes":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["group","price","count"],"properties":{"group":{"$ref":"#/components/schemas/ReferenceGroup"},"price":{"$ref":"#/components/schemas/Usd"},"count":{"type":"integer"}}}},"devFarthestVoteBps":{"oneOf":[{"$ref":"#/components/schemas/Bps"},{"type":"null"}]},"groupSpreadBps":{"oneOf":[{"$ref":"#/components/schemas/Bps"},{"type":"null"}]},"observations":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["group","source","price","ageMs","disposition"],"properties":{"group":{"$ref":"#/components/schemas/ReferenceGroup"},"source":{"$ref":"#/components/schemas/UntrustedText"},"price":{"$ref":"#/components/schemas/Usd"},"ageMs":{"type":"integer"},"disposition":{"type":"string"}}}},"minSharesOut":{"$ref":"#/components/schemas/KnownOut"},"minOut":{"$ref":"#/components/schemas/KnownOut"},"maxPremiumBps":{"$ref":"#/components/schemas/Bps"},"sizeCeilingUsd":{"$ref":"#/components/schemas/Usd"},"sizeCeilingSource":{"type":"string","enum":["LIMITS_BOOK","POLICY_DEFAULT"]},"validUntilMs":{"type":"integer"},"policyHash":{"$ref":"#/components/schemas/Hex32"},"inputsHash":{"$ref":"#/components/schemas/Hex32"},"routeHash":{"$ref":"#/components/schemas/Hex32"},"quoteHash":{"$ref":"#/components/schemas/Hex32"},"simHash":{"$ref":"#/components/schemas/Hex32"},"notes":{"type":"array","items":{"type":"string"}}}},"Eip712Domain":{"type":"object","additionalProperties":false,"required":["name","version","chainId","verifyingContract"],"properties":{"name":{"type":"string"},"version":{"type":"string"},"chainId":{"type":"integer"},"verifyingContract":{"$ref":"#/components/schemas/Address"}}},"VerdictSignedDevKey":{"type":"object","additionalProperties":false,"required":["status","signer","signature","digest","domain","message","notice"],"properties":{"status":{"type":"string","const":"SIGNED_DEV_KEY"},"signer":{"$ref":"#/components/schemas/Address"},"signature":{"$ref":"#/components/schemas/HexData"},"digest":{"$ref":"#/components/schemas/Hex32"},"domain":{"$ref":"#/components/schemas/Eip712Domain"},"message":{"type":"object","description":"The EIP-712 Verdict message; integers as decimal strings.","additionalProperties":{"type":["string","integer"]}},"notice":{"type":"string"}}},"VerdictUnsigned":{"type":"object","additionalProperties":false,"required":["status","reason"],"properties":{"status":{"type":"string","enum":["UNVERIFIED","UNSIGNABLE"]},"reason":{"type":"string"}}},"VerdictSignature":{"oneOf":[{"$ref":"#/components/schemas/VerdictSignedDevKey"},{"$ref":"#/components/schemas/VerdictUnsigned"}]},"VerdictResponse":{"type":"object","additionalProperties":false,"required":["evaluation","signature","policy","provenance"],"properties":{"evaluation":{"$ref":"#/components/schemas/VerdictEvaluation"},"signature":{"$ref":"#/components/schemas/VerdictSignature"},"policy":{"type":"object","additionalProperties":false,"required":["version","status"],"properties":{"version":{"type":"string"},"status":{"type":"string","enum":["PROVISIONAL","FITTED"]}}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"IssuerCompletenessSummary":{"type":"object","additionalProperties":false,"required":["issuer","expected","discovered","shortBy","discovery","status","missingTickers","carried","decimalsUnverified","reasons"],"properties":{"issuer":{"$ref":"#/components/schemas/Issuer"},"expected":{"oneOf":[{"type":"integer"},{"type":"null"}]},"discovered":{"type":"integer"},"shortBy":{"oneOf":[{"type":"integer"},{"type":"null"}]},"discovery":{"type":"string"},"status":{"type":"string"},"missingTickers":{"type":"array","items":{"type":"string"}},"carried":{"type":"integer"},"decimalsUnverified":{"type":"array","items":{"type":"string"}},"reasons":{"type":"array","items":{"type":"string"}}}},"RegistryCompleteness":{"type":"object","additionalProperties":false,"required":["status","reportAt","mode","instrumentCount","exposureCount","issuers","excluded","notAShareCount","snapshot"],"properties":{"status":{"type":"string","enum":["COMPLETE","REGISTRY_INCOMPLETE","ABORTED","UNKNOWN"]},"reportAt":{"oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]},"mode":{"oneOf":[{"type":"string","enum":["incremental","full"]},{"type":"null"}]},"instrumentCount":{"type":"integer"},"exposureCount":{"type":"integer"},"issuers":{"type":"array","items":{"$ref":"#/components/schemas/IssuerCompletenessSummary"}},"excluded":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["issuer","symbol","ticker","reason"],"properties":{"issuer":{"$ref":"#/components/schemas/Issuer"},"symbol":{"$ref":"#/components/schemas/UntrustedText"},"ticker":{"type":"string"},"reason":{"type":"string"}}}},"notAShareCount":{"type":"integer"},"snapshot":{"$ref":"#/components/schemas/RegistryStamp"}}},"SourceStatus":{"type":"object","additionalProperties":false,"required":["id","kind","status","lastAt","ageMs","expectedIntervalSec","staleAfterSec","detail"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["recorder","tape","registry","reference","edge"]},"status":{"type":"string","enum":["FRESH","STALE","DOWN","UNKNOWN"]},"lastAt":{"oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]},"ageMs":{"oneOf":[{"type":"integer","minimum":0},{"type":"null"}]},"expectedIntervalSec":{"oneOf":[{"type":"integer"},{"type":"null"}]},"staleAfterSec":{"oneOf":[{"type":"integer"},{"type":"null"}]},"detail":{"type":"string"}}},"Status":{"type":"object","additionalProperties":false,"required":["overall","sources","edge"],"properties":{"overall":{"type":"string","enum":["OK","DEGRADED","DOWN"]},"sources":{"type":"array","items":{"$ref":"#/components/schemas/SourceStatus"}},"edge":{"type":"object","additionalProperties":false,"required":["configured","halted","lanes"],"properties":{"configured":{"type":"boolean"},"halted":{"oneOf":[{"type":"string"},{"type":"null"}]},"lanes":{"type":"object","additionalProperties":false,"required":["preview","profile"],"properties":{"preview":{"type":"string"},"profile":{"type":"string"}}}}}}},"PriceCheck":{"type":"object","additionalProperties":false,"required":["issuer","sizeUsd","session","decision","reason","detail","priceImpactPercent","ratioFromChain"],"description":"One bucket judged on the price axis only, with the PROVISIONAL Verdict thresholds. Not a Verdict.\nGO: |median premium| within the GO band. CAUTION: within the block threshold. BLOCK: beyond it, or a per-share\nprice beyond the absurd multiple of the reference, or no reference, or no share ratio. NO_QUOTE: no route.\nNO_REAL_OFFER: the route's own price impact is 99% or more, or the price is more than 11 times the reference:\na quote that moves the pool to nothing, shown as no offer rather than as a number.\nNO_REFERENCE_MARKET: the reference has no market for this company at all (not merely stale).\n","properties":{"issuer":{"type":"string"},"sizeUsd":{"$ref":"#/components/schemas/Usd"},"session":{"type":"string","enum":["PRE","REGULAR","POST","OVERNIGHT","OFFHOURS_WEEKEND"]},"decision":{"type":"string","enum":["GO","CAUTION","BLOCK","NO_QUOTE"]},"reason":{"type":"string","enum":["PRICE_WITHIN_BAND","PRICE_ABOVE_BAND","PRICE_FAR","PRICE_ABSURD","NO_REAL_OFFER","NO_REFERENCE","NO_REFERENCE_MARKET","NO_RATIO","NO_QUOTE"]},"detail":{"type":"string"},"priceImpactPercent":{"description":"Median price impact Binance reported for the best routes in the bucket, percent with 2 decimals.","oneOf":[{"type":"string","pattern":"^[0-9]+\\.[0-9]{2}$"},{"type":"null"}]},"ratioFromChain":{"type":"integer","minimum":0,"description":"Usable quotes priced with the on-chain shares-per-token ratio because the recorders hold none."}}},"PremiumMatrixRow":{"type":"object","additionalProperties":false,"required":["ticker","exposure","name","buckets","checks"],"properties":{"ticker":{"type":"string"},"exposure":{"oneOf":[{"type":"string"},{"type":"null"}]},"name":{"oneOf":[{"$ref":"#/components/schemas/UntrustedText"},{"type":"null"}]},"buckets":{"type":"array","items":{"$ref":"#/components/schemas/PremiumBucket"}},"checks":{"type":"array","description":"One price check per bucket, keyed by issuer, size and session.","items":{"$ref":"#/components/schemas/PriceCheck"}}}},"PremiumMatrix":{"type":"object","additionalProperties":false,"required":["reference","side","window","method","policy","sizesUsd","rows"],"properties":{"reference":{"type":"object","additionalProperties":false,"required":["kind","group","provider","description"],"properties":{"kind":{"$ref":"#/components/schemas/ReferenceKind"},"group":{"$ref":"#/components/schemas/ReferenceGroup"},"provider":{"type":"string"},"description":{"type":"string"}}},"side":{"type":"string","enum":["buy","sell"]},"window":{"type":"object","additionalProperties":false,"required":["from","to"],"properties":{"from":{"$ref":"#/components/schemas/Timestamp"},"to":{"$ref":"#/components/schemas/Timestamp"}}},"method":{"type":"string"},"policy":{"type":"object","additionalProperties":false,"required":["version","status","goBandBps","blockBps","absurdMultiple"],"properties":{"version":{"type":"string"},"status":{"type":"string","enum":["PROVISIONAL","FITTED"]},"goBandBps":{"$ref":"#/components/schemas/Bps"},"blockBps":{"$ref":"#/components/schemas/Bps"},"absurdMultiple":{"type":"string"}}},"sizesUsd":{"type":"array","description":"Every size that appears in any bucket, ascending.","items":{"$ref":"#/components/schemas/Usd"}},"rows":{"type":"array","items":{"$ref":"#/components/schemas/PremiumMatrixRow"}}}},"MakerShare":{"type":"object","additionalProperties":false,"required":["name","kind","routes","sharePercent"],"properties":{"name":{"$ref":"#/components/schemas/UntrustedText"},"kind":{"type":"string","enum":["RFQ_MAKER","POOL"]},"routes":{"type":"integer","minimum":0},"sharePercent":{"type":"string","description":"Routes containing this maker ÷ best routes of the issuer, percent with 2 decimals.","pattern":"^[0-9]+\\.[0-9]{2}$"}}},"MakerConcentration":{"type":"object","additionalProperties":false,"required":["side","window","method","issuers","provenance"],"properties":{"side":{"type":"string","enum":["buy","sell"]},"window":{"type":"object","additionalProperties":false,"required":["from","to"],"properties":{"from":{"$ref":"#/components/schemas/Timestamp"},"to":{"$ref":"#/components/schemas/Timestamp"}}},"method":{"type":"string"},"issuers":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["issuer","routes","makers"],"properties":{"issuer":{"type":"string"},"routes":{"type":"integer","minimum":0,"description":"Best routes recorded for this issuer in the window."},"makers":{"type":"array","items":{"$ref":"#/components/schemas/MakerShare"}}}}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"PendingMultiplier":{"type":"object","additionalProperties":false,"required":["kind","next","effectiveAt","earliestApplyAt","relChange","detail"],"properties":{"kind":{"type":"string","enum":["none","scheduled","corporate_action","unavailable","not_applicable"]},"next":{"oneOf":[{"$ref":"#/components/schemas/RatioValue"},{"type":"null"}]},"effectiveAt":{"description":"bStocks only. The contract switches the multiplier at this time without an event.","oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]},"earliestApplyAt":{"description":"Ondo corporate actions apply when an admin unpauses, no sooner than this.","oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]},"relChange":{"oneOf":[{"type":"string"},{"type":"null"}]},"detail":{"type":"string"}}},"Multipliers":{"type":"object","additionalProperties":false,"required":["ticker","exposure","instruments"],"properties":{"ticker":{"type":"string"},"exposure":{"type":"string"},"instruments":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["issuer","symbol","address","current","pending","provenance"],"properties":{"issuer":{"$ref":"#/components/schemas/Issuer"},"symbol":{"$ref":"#/components/schemas/UntrustedText"},"address":{"$ref":"#/components/schemas/Address"},"current":{"$ref":"#/components/schemas/RatioReading"},"pending":{"$ref":"#/components/schemas/PendingMultiplier"},"provenance":{"$ref":"#/components/schemas/Provenance"}}}}}},"HoldingItem":{"type":"object","additionalProperties":false,"required":["ticker","issuer","symbol","address","tokens","shares","ratio","ratioSource","status","reason"],"properties":{"ticker":{"type":"string"},"issuer":{"$ref":"#/components/schemas/Issuer"},"symbol":{"$ref":"#/components/schemas/UntrustedText"},"address":{"$ref":"#/components/schemas/Address"},"tokens":{"oneOf":[{"$ref":"#/components/schemas/TokenAmount"},{"type":"null"}]},"shares":{"oneOf":[{"$ref":"#/components/schemas/SharesValue"},{"type":"null"}]},"ratio":{"oneOf":[{"$ref":"#/components/schemas/RatioValue"},{"type":"null"}]},"ratioSource":{"oneOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["OK","NOT_CONVERTED"]},"reason":{"oneOf":[{"type":"string"},{"type":"null"}]}}},"HoldingValue":{"type":"object","additionalProperties":false,"required":["usd","perShare","label","model","bandBps","provenance"],"properties":{"usd":{"$ref":"#/components/schemas/UsdOrRedacted"},"perShare":{"$ref":"#/components/schemas/UsdOrRedacted"},"label":{"type":"string","enum":["OBSERVED","MODEL"]},"model":{"oneOf":[{"type":"string"},{"type":"null"}]},"bandBps":{"oneOf":[{"$ref":"#/components/schemas/Bps"},{"type":"null"}]},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"HoldingCompany":{"type":"object","additionalProperties":false,"required":["ticker","exposure","name","shares","complete","value","valueReason"],"properties":{"ticker":{"type":"string"},"exposure":{"type":"string"},"name":{"oneOf":[{"$ref":"#/components/schemas/UntrustedText"},{"type":"null"}]},"shares":{"$ref":"#/components/schemas/SharesValue"},"complete":{"type":"boolean","description":"False when a wrapper of this company could not be converted, so `shares` is a lower bound."},"value":{"oneOf":[{"$ref":"#/components/schemas/HoldingValue"},{"type":"null"}]},"valueReason":{"description":"Why `value` is null, in English. Starts with `MODEL_NOT_GRADED:` when only a model whose band is not CALIBRATED could price the company (a model price is not published until its band is calibrated against graded promises).","oneOf":[{"type":"string"},{"type":"null"}]}}},"Holdings":{"type":"object","additionalProperties":false,"required":["address","block","blockTimestamp","rpc","instrumentsRead","items","companies","total","notCovered","provenance"],"properties":{"address":{"$ref":"#/components/schemas/Address"},"block":{"$ref":"#/components/schemas/UintString"},"blockTimestamp":{"$ref":"#/components/schemas/Timestamp"},"rpc":{"type":"string"},"instrumentsRead":{"type":"integer","minimum":0},"items":{"type":"array","description":"Wrappers with a non-zero balance, and wrappers that could not be converted.","items":{"$ref":"#/components/schemas/HoldingItem"}},"companies":{"type":"array","items":{"$ref":"#/components/schemas/HoldingCompany"}},"total":{"type":"object","additionalProperties":false,"required":["usd","complete"],"properties":{"usd":{"oneOf":[{"$ref":"#/components/schemas/UsdOrRedacted"},{"type":"null"}]},"complete":{"type":"boolean"}}},"notCovered":{"type":"array","items":{"type":"string"}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"OverpayTrade":{"type":"object","additionalProperties":false,"required":["txHash","time","side","ticker","issuer","symbol","tokens","valueUsd","perTokenUsd","perShareUsd","reference","costBps","costUsd","status","reason","basis","receipt"],"properties":{"txHash":{"$ref":"#/components/schemas/Hex32"},"time":{"$ref":"#/components/schemas/Timestamp"},"side":{"type":"string","enum":["BUY","SELL"]},"ticker":{"type":"string"},"issuer":{"$ref":"#/components/schemas/Issuer"},"symbol":{"$ref":"#/components/schemas/UntrustedText"},"tokens":{"type":"string","description":"Token amount as Binance reports it (token units)."},"valueUsd":{"$ref":"#/components/schemas/Usd"},"perTokenUsd":{"$ref":"#/components/schemas/Usd"},"perShareUsd":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"reference":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","perShare","ageMs","provenance"],"properties":{"kind":{"$ref":"#/components/schemas/ReferenceKind"},"perShare":{"$ref":"#/components/schemas/UsdOrRedacted"},"ageMs":{"type":"integer","minimum":0,"description":"Trade time minus the reference observation time."},"provenance":{"$ref":"#/components/schemas/Provenance"}}},{"type":"null"}]},"costBps":{"description":"Signed cost to the trader versus the reference. Buys pay above it; sells receive below it.","oneOf":[{"$ref":"#/components/schemas/Bps"},{"type":"null"}]},"costUsd":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"status":{"type":"string","enum":["MEASURED","NO_REFERENCE","NO_RATIO","NOT_A_HOLDING"]},"reason":{"oneOf":[{"type":"string"},{"type":"null"}]},"basis":{"type":"string","enum":["RECEIPT","BINANCE_VALUE"],"description":"Whether tokens and USD come from the transaction receipt or from Binance's trade history."},"receipt":{"$ref":"#/components/schemas/ReceiptCheck"}}},"ReceiptCheck":{"type":"object","additionalProperties":false,"required":["status","tokens","tokensDiffBps","paid","paidUsd","paidUsdMethod","valueUsdDiffBps","detail"],"description":"Binance's record of the trade checked against the BSC transaction receipt (ERC-20 Transfer logs and the native value).","properties":{"status":{"type":"string","enum":["MATCH","MISMATCH","INTERMEDIATE_HOP","UNPRICED","UNAVAILABLE"]},"tokens":{"description":"Net tokens the address received (buy) or sent (sell) in the receipt, token units.","oneOf":[{"type":"string"},{"type":"null"}]},"tokensDiffBps":{"oneOf":[{"$ref":"#/components/schemas/Bps"},{"type":"null"}]},"paid":{"type":"array","description":"What the address gave (buy) or received (sell) in the transaction, per token.","items":{"type":"object","additionalProperties":false,"required":["token","symbol","amount"],"properties":{"token":{"type":"string"},"symbol":{"type":"string"},"amount":{"type":"string"}}}},"paidUsd":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"paidUsdMethod":{"description":"STABLE when paid in USDT/USDC at $1; ROUTE_IMPLIED when the route's own stablecoin hop prices a BNB payment.","oneOf":[{"type":"string","enum":["STABLE","ROUTE_IMPLIED"]},{"type":"null"}]},"valueUsdDiffBps":{"description":"Binance valueUsd versus the receipt's USD, signed (positive when Binance reports more).","oneOf":[{"$ref":"#/components/schemas/Bps"},{"type":"null"}]},"detail":{"type":"string"}}},"OverpayAudit":{"type":"object","additionalProperties":false,"required":["address","window","scanned","truncated","trades","summary","method","notVerified","provenance"],"properties":{"address":{"$ref":"#/components/schemas/Address"},"window":{"type":"object","additionalProperties":false,"required":["from","to"],"properties":{"from":{"$ref":"#/components/schemas/Timestamp"},"to":{"$ref":"#/components/schemas/Timestamp"}}},"scanned":{"type":"integer","minimum":0,"description":"DEX trades read from Binance in the window, every token."},"truncated":{"type":"boolean","description":"True when the page limit stopped the scan before the window's start."},"trades":{"type":"array","items":{"$ref":"#/components/schemas/OverpayTrade"}},"summary":{"type":"object","additionalProperties":false,"required":["stockTrades","measured","costUsd","medianCostBps"],"properties":{"stockTrades":{"type":"integer","minimum":0},"measured":{"type":"integer","minimum":0},"costUsd":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"medianCostBps":{"oneOf":[{"$ref":"#/components/schemas/Bps"},{"type":"null"}]}}},"method":{"type":"string"},"notVerified":{"type":"array","items":{"type":"string"}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"PreviewCheck":{"type":"object","additionalProperties":false,"required":["decision","uncappedDecision","reasons","agreement","devABps","devBBps","groupsUsed","groupSpreadBps","fairValue","unread","notes","policy","signature","provenance"],"properties":{"decision":{"type":"string","enum":["GO","CAUTION","BLOCK"]},"uncappedDecision":{"type":"string","enum":["GO","CAUTION","BLOCK"],"description":"What @sx/verdict decided before the cap for unread hazards."},"reasons":{"type":"array","items":{"type":"string"}},"agreement":{"type":"string","enum":["AGREES","INSUFFICIENT","DISAGREES"]},"devABps":{"description":"Previewed per-share price versus fair value, signed.","oneOf":[{"$ref":"#/components/schemas/Bps"},{"type":"null"}]},"devBBps":{"description":"Previewed per-share price versus the median of agreeing observed references, signed.","oneOf":[{"$ref":"#/components/schemas/Bps"},{"type":"null"}]},"groupsUsed":{"type":"array","items":{"$ref":"#/components/schemas/ReferenceGroup"}},"groupSpreadBps":{"oneOf":[{"$ref":"#/components/schemas/Bps"},{"type":"null"}]},"fairValue":{"oneOf":[{"type":"object","additionalProperties":false,"required":["label","price","model","bandBps","bandCalibration"],"properties":{"label":{"type":"string","enum":["OBSERVED","MODEL"]},"price":{"$ref":"#/components/schemas/UsdOrRedacted"},"model":{"type":"string"},"bandBps":{"$ref":"#/components/schemas/Bps"},"bandCalibration":{"$ref":"#/components/schemas/FairValueBandCalibration"}}},{"type":"null"}]},"unread":{"type":"array","description":"Hazard inputs this server could not read. Any entry caps the decision at CAUTION.","items":{"type":"object","additionalProperties":false,"required":["hazard","reason"],"properties":{"hazard":{"type":"string"},"reason":{"type":"string"}}}},"notes":{"type":"array","items":{"type":"string"}},"policy":{"type":"object","additionalProperties":false,"required":["version","status"],"properties":{"version":{"type":"string"},"status":{"type":"string","enum":["PROVISIONAL","FITTED"]}}},"signature":{"$ref":"#/components/schemas/VerdictUnsigned"},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"ExitEstimate":{"type":"object","additionalProperties":false,"required":["sizeUsd","perShareMedian","n","window","lossUsd","lossBps","provenance"],"description":"Recorded sell quotes for the same wrapper at the nearest recorded size. Not a simulation.","properties":{"sizeUsd":{"$ref":"#/components/schemas/Usd"},"perShareMedian":{"$ref":"#/components/schemas/Usd"},"n":{"type":"integer","minimum":1},"window":{"type":"object","additionalProperties":false,"required":["from","to"],"properties":{"from":{"$ref":"#/components/schemas/Timestamp"},"to":{"$ref":"#/components/schemas/Timestamp"}}},"lossUsd":{"description":"shares × (previewed buy per share − recorded sell per share), rounded up.","$ref":"#/components/schemas/Usd"},"lossBps":{"$ref":"#/components/schemas/Bps"},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"CheckedPreview":{"type":"object","additionalProperties":false,"required":["preview","check","checkReason","exit","exitReason"],"properties":{"preview":{"$ref":"#/components/schemas/PreviewOutcome"},"check":{"oneOf":[{"$ref":"#/components/schemas/PreviewCheck"},{"type":"null"}]},"checkReason":{"description":"Why there is no check, when there is none.","oneOf":[{"type":"string"},{"type":"null"}]},"exit":{"oneOf":[{"$ref":"#/components/schemas/ExitEstimate"},{"type":"null"}]},"exitReason":{"oneOf":[{"type":"string"},{"type":"null"}]}}},"FxRate":{"type":"object","additionalProperties":false,"required":["currency","kind","perUsd","source","asOf","conversions","provenance","notes"],"properties":{"currency":{"type":"string","enum":["IDR","AED"]},"kind":{"type":"string","enum":["PEG","REFERENCE"]},"perUsd":{"description":"Units of the currency per US dollar, as a decimal string, or withheld under the rights matrix.","oneOf":[{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$"},{"$ref":"#/components/schemas/Redacted"}]},"source":{"type":"string"},"asOf":{"description":"The date the source published the rate (YYYY-MM-DD).","oneOf":[{"type":"string"},{"type":"null"}]},"conversions":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["usd","local"],"properties":{"usd":{"$ref":"#/components/schemas/Usd"},"local":{"description":"The amount in the currency, rounded to its minor unit (IDR 0 decimals, AED 2), or withheld.","oneOf":[{"type":"string","pattern":"^[0-9]+(\\.[0-9]{2})?$"},{"$ref":"#/components/schemas/Redacted"}]}}}},"provenance":{"$ref":"#/components/schemas/Provenance"},"notes":{"type":"array","items":{"type":"string"}}}},"TelegramLinkView":{"type":"object","additionalProperties":false,"required":["status","expiresAt","telegram","message"],"properties":{"status":{"type":"string","enum":["PENDING","EXPIRED","USED","UNKNOWN"]},"expiresAt":{"oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]},"telegram":{"oneOf":[{"type":"object","additionalProperties":false,"required":["displayName"],"properties":{"displayName":{"oneOf":[{"$ref":"#/components/schemas/UntrustedText"},{"type":"null"}]}}},{"type":"null"}]},"message":{"type":"string"}}},"TelegramLinkConfirm":{"type":"object","additionalProperties":false,"required":["confirm"],"properties":{"confirm":{"type":"boolean","const":true}}},"TelegramLinkOutcome":{"type":"object","additionalProperties":false,"required":["outcome","message"],"properties":{"outcome":{"type":"string","enum":["VERIFIED","REFUSED","TOKEN_UNKNOWN","TOKEN_EXPIRED","TOKEN_USED","ELIGIBILITY_UNAVAILABLE","CONFIRMATION_REQUIRED","RATE_LIMITED"]},"message":{"type":"string"},"tier":{"$ref":"#/components/schemas/Tier"},"country":{"oneOf":[{"type":"string","pattern":"^[A-Z]{2}$"},{"type":"null"}]},"verifiedUntil":{"$ref":"#/components/schemas/Timestamp"},"reasons":{"type":"array","items":{"type":"string"}}}},"Percent":{"type":"string","description":"A percentage with 2 decimals, e.g. \"87.50\".","pattern":"^[0-9]{1,3}\\.[0-9]{2}$"},"WilsonInterval":{"type":"object","additionalProperties":false,"required":["lo","hi"],"description":"Wilson score 95% interval, in percent. A floor on the true uncertainty (promises on one tape are correlated).","properties":{"lo":{"$ref":"#/components/schemas/Percent"},"hi":{"$ref":"#/components/schemas/Percent"}}},"ReasonCount":{"type":"object","additionalProperties":false,"required":["reason","count"],"properties":{"reason":{"type":"string"},"count":{"type":"integer","minimum":0}}},"CalibrationGroup":{"type":"object","additionalProperties":false,"required":["kind","session","horizon","outcome","claimed","nominalPct","issued","pending","counts","unresolved","void","coverage","enoughData","nominalInsideInterval","errors","position","scores"],"properties":{"kind":{"type":"string","enum":["FV_BAND","GO_PRICE"]},"session":{"description":"The session the promise was issued in, or ALL for a total over sessions.","type":"string"},"horizon":{"type":"string","enum":["PT1H","PT6H","NEXT_REGULAR_OPEN","FILL","OTHER"]},"outcome":{"type":"string","description":"How the truth is read for these promises (the outcome spec, in words)."},"claimed":{"type":"boolean","description":"True when the promises claimed a nominal coverage (a CALIBRATED band); false for PROVISIONAL bands, which claim none."},"nominalPct":{"oneOf":[{"$ref":"#/components/schemas/Percent"},{"type":"null"}]},"issued":{"type":"integer","minimum":0},"pending":{"type":"integer","minimum":0,"description":"Issued but not yet gradable (the horizon has not passed on the tape)."},"counts":{"type":"object","additionalProperties":false,"required":["HIT","MISS","UNRESOLVED","VOID"],"properties":{"HIT":{"type":"integer","minimum":0},"MISS":{"type":"integer","minimum":0},"UNRESOLVED":{"type":"integer","minimum":0},"VOID":{"type":"integer","minimum":0}}},"unresolved":{"type":"array","items":{"$ref":"#/components/schemas/ReasonCount"}},"void":{"type":"array","items":{"$ref":"#/components/schemas/ReasonCount"}},"coverage":{"type":"object","additionalProperties":false,"required":["scored","hits","pct","wilson95"],"description":"Share of HIT among HIT + MISS. UNRESOLVED and VOID are counted beside it, never inside it.","properties":{"scored":{"type":"integer","minimum":0},"hits":{"type":"integer","minimum":0},"pct":{"oneOf":[{"$ref":"#/components/schemas/Percent"},{"type":"null"}]},"wilson95":{"oneOf":[{"$ref":"#/components/schemas/WilsonInterval"},{"type":"null"}]}}},"enoughData":{"type":"boolean","description":"At least `minScored` graded promises. Below it no rate is claimed."},"nominalInsideInterval":{"description":"Whether the claimed coverage lies inside the Wilson interval. Null when nothing was claimed or there is too little data.","oneOf":[{"type":"boolean"},{"type":"null"}]},"errors":{"description":"Error of the point against the outcome, in basis points, over graded promises.","oneOf":[{"type":"object","additionalProperties":false,"required":["n","medianAbsBps","p90AbsBps","meanSignedBps"],"properties":{"n":{"type":"integer","minimum":0},"medianAbsBps":{"$ref":"#/components/schemas/Bps"},"p90AbsBps":{"$ref":"#/components/schemas/Bps"},"meanSignedBps":{"$ref":"#/components/schemas/Bps"}}},{"type":"null"}]},"position":{"type":"object","additionalProperties":false,"required":["below","bins","above"],"description":"Where graded outcomes fell inside [lo, hi] in ten equal bins, plus the two tails.","properties":{"below":{"type":"integer","minimum":0},"bins":{"type":"array","minItems":10,"maxItems":10,"items":{"type":"integer","minimum":0}},"above":{"type":"integer","minimum":0}}},"scores":{"description":"Proper scores over graded promises, in basis points of log return (lower is better): the CRPS of the band read\nas a Gaussian at its claimed coverage (at an assumed 90% when it claimed none, `assumedNominal`), and the mean\npinball loss at the band's two edges. Per baseline sealed in the promise at issuance (the last regular close, the\ntoken's own price, the HIP-3 oracle): its CRPS under the same spread, ours on the same promises, its mean\nabsolute error, and the skill 1 − CRPS(ours) / CRPS(baseline). Null before any promise in the group is scored.\n","oneOf":[{"type":"object","additionalProperties":false,"required":["n","crpsBps","quantileScoreBps","assumedNominal","baselines"],"properties":{"n":{"type":"integer","minimum":0},"crpsBps":{"$ref":"#/components/schemas/Bps"},"quantileScoreBps":{"$ref":"#/components/schemas/Bps"},"assumedNominal":{"type":"boolean","description":"True when some scored promises claimed no coverage and were read at 90%."},"baselines":{"type":"array","items":{"$ref":"#/components/schemas/CalibrationBaseline"}}}},{"type":"null"}]}}},"CalibrationBaseline":{"type":"object","additionalProperties":false,"required":["baseline","n","crpsBps","oursCrpsBps","skillPct","maeBps"],"properties":{"baseline":{"type":"string","enum":["LAST_CLOSE","TOKEN_PRICE","HIP3"]},"n":{"type":"integer","minimum":0,"description":"Scored promises that carried this baseline."},"crpsBps":{"$ref":"#/components/schemas/Bps"},"oursCrpsBps":{"$ref":"#/components/schemas/Bps"},"skillPct":{"description":"1 − CRPS(ours) / CRPS(baseline) on the same promises, in percent; positive when ours is better. Null when the baseline scored zero.","oneOf":[{"type":"string","pattern":"^-?[0-9]+\\.[0-9]{2}$"},{"type":"null"}]},"maeBps":{"$ref":"#/components/schemas/Bps"}}},"AnchorBatch":{"type":"object","additionalProperties":false,"required":["chainId","registry","root","prevRoot","sequence","periodStart","periodEnd","itemCount","trigger","sealsOpen","status","txHash","block","blockTime"],"description":"One Merkle root of promises posted to AnchorRegistry.anchor on BNB Smart Chain.","properties":{"chainId":{"type":"integer"},"registry":{"$ref":"#/components/schemas/Address"},"root":{"$ref":"#/components/schemas/Hex32"},"prevRoot":{"$ref":"#/components/schemas/Hex32"},"sequence":{"oneOf":[{"type":"integer","minimum":1},{"type":"null"}]},"periodStart":{"$ref":"#/components/schemas/Timestamp"},"periodEnd":{"$ref":"#/components/schemas/Timestamp"},"itemCount":{"type":"integer","minimum":1},"trigger":{"type":"string","enum":["hourly","pre_open"],"description":"pre_open: cut five minutes before a regular open, so every promise about it is on chain before the market answers."},"sealsOpen":{"oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]},"status":{"type":"string","enum":["built","submitted","confirmed","failed"]},"txHash":{"oneOf":[{"$ref":"#/components/schemas/Hex32"},{"type":"null"}]},"block":{"oneOf":[{"type":"integer","minimum":0},{"type":"null"}]},"blockTime":{"oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]}}},"Anchors":{"type":"object","additionalProperties":false,"required":["anchors","counts","howToVerify","provenance"],"properties":{"anchors":{"type":"array","items":{"$ref":"#/components/schemas/AnchorBatch"}},"counts":{"type":"object","additionalProperties":false,"required":["confirmed","submitted","failed"],"properties":{"confirmed":{"type":"integer","minimum":0},"submitted":{"type":"integer","minimum":0},"failed":{"type":"integer","minimum":0}}},"howToVerify":{"type":"string"},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"PromiseProof":{"type":"object","additionalProperties":false,"required":["promiseId","itemHash","leaf","promise","anchors","howToVerify","provenance"],"properties":{"promiseId":{"$ref":"#/components/schemas/Hex32"},"itemHash":{"$ref":"#/components/schemas/Hex32","description":"keccak256(JCS({schema: 'sx.anchor.item/1', kind: 'promise', id}))."},"leaf":{"$ref":"#/components/schemas/Hex32","description":"keccak256(0x00 ‖ itemHash)."},"promise":{"type":"object","additionalProperties":false,"required":["kind","exposure","issuedAt","horizon","outcomeFrom","payload"],"properties":{"kind":{"type":"string","enum":["FV_BAND","GO_PRICE"]},"exposure":{"type":"string"},"issuedAt":{"$ref":"#/components/schemas/Timestamp"},"horizon":{"type":"string","description":"The horizon as stored (JCS)."},"outcomeFrom":{"description":"The earliest moment the outcome could be observed. Null for a fill horizon (it depends on the fill).","oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]},"payload":{"type":"string","description":"The promise's JCS text, exactly as hashed: keccak256 of it without `id` is the id."}}},"anchors":{"type":"array","description":"Every batch that holds this promise, oldest first. Empty until the anchor job posts the window it was written in.","items":{"type":"object","additionalProperties":false,"required":["batch","proof","verified","committedBeforeOutcome"],"properties":{"batch":{"$ref":"#/components/schemas/AnchorBatch"},"proof":{"type":"array","items":{"$ref":"#/components/schemas/Hex32"}},"verified":{"type":"boolean","description":"The proof recomputed by the server reaches the batch root."},"committedBeforeOutcome":{"description":"The anchoring block's time precedes `outcomeFrom`. Null while unconfirmed or for a fill horizon.","oneOf":[{"type":"boolean"},{"type":"null"}]}}}},"howToVerify":{"type":"string"},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"Calibration":{"type":"object","additionalProperties":false,"required":["window","gradedTo","minScored","headline","signer","groups","totals","reliability","withheld","anchoring","notes","provenance"],"properties":{"window":{"type":"object","additionalProperties":false,"required":["from","to","days"],"properties":{"from":{"$ref":"#/components/schemas/Timestamp"},"to":{"$ref":"#/components/schemas/Timestamp"},"days":{"type":"integer"}}},"gradedTo":{"description":"Latest grading time on record. Null when nothing has been graded.","oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]},"minScored":{"type":"integer","description":"Graded promises a group needs before a rate is stated."},"headline":{"type":"object","additionalProperties":false,"required":["code","kind","horizon","issued","pending","scored","hits","pct","nominalPct","wilson95"],"description":"The one-line answer for the fair-value band at its main horizon (PT1H). NO_PROMISES: none issued in the window.\nNOT_GRADED_YET: issued, none gradable yet. TOO_LITTLE_DATA: fewer than `minScored` graded. NO_COVERAGE_CLAIMED:\nbands are PROVISIONAL, so the rate is reported without a claim to compare it with. MEETS_CLAIM, BELOW_CLAIM,\nABOVE_CLAIM: the claimed coverage is inside, above or below the Wilson interval.\n","properties":{"code":{"type":"string","enum":["NO_PROMISES","NOT_GRADED_YET","TOO_LITTLE_DATA","NO_COVERAGE_CLAIMED","MEETS_CLAIM","BELOW_CLAIM","ABOVE_CLAIM"]},"kind":{"type":"string","enum":["FV_BAND"]},"horizon":{"type":"string","enum":["PT1H"]},"issued":{"type":"integer","minimum":0},"pending":{"type":"integer","minimum":0},"scored":{"type":"integer","minimum":0},"hits":{"type":"integer","minimum":0},"pct":{"oneOf":[{"$ref":"#/components/schemas/Percent"},{"type":"null"}]},"nominalPct":{"oneOf":[{"$ref":"#/components/schemas/Percent"},{"type":"null"}]},"wilson95":{"oneOf":[{"$ref":"#/components/schemas/WilsonInterval"},{"type":"null"}]}}},"signer":{"type":"object","additionalProperties":false,"required":["expected","issued","unsigned","checked","valid","recovered"],"description":"Promise signatures. `expected` is the published promise-signing address; the latest signed promises are\nre-hashed from their stored payload and their EIP-712 signer recovered (`checked`, `valid`, `recovered`).\n","properties":{"expected":{"oneOf":[{"$ref":"#/components/schemas/Address"},{"type":"null"}]},"issued":{"type":"integer","minimum":0},"unsigned":{"type":"integer","minimum":0},"checked":{"type":"integer","minimum":0},"valid":{"type":"integer","minimum":0},"recovered":{"type":"array","items":{"$ref":"#/components/schemas/Address"}}}},"groups":{"type":"array","description":"Per kind, session, horizon and claim.","items":{"$ref":"#/components/schemas/CalibrationGroup"}},"totals":{"type":"array","description":"Per kind, horizon and claim, over every session (`session` is ALL).","items":{"$ref":"#/components/schemas/CalibrationGroup"}},"reliability":{"type":"object","additionalProperties":false,"required":["bins","unclaimed"],"description":"Observed hit rate per claimed-coverage bin, for promises that claimed one; `unclaimed` counts graded promises that claimed none.","properties":{"bins":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["fromPct","toPct","scored","hits","pct","wilson95"],"properties":{"fromPct":{"$ref":"#/components/schemas/Percent"},"toPct":{"$ref":"#/components/schemas/Percent"},"scored":{"type":"integer","minimum":0},"hits":{"type":"integer","minimum":0},"pct":{"oneOf":[{"$ref":"#/components/schemas/Percent"},{"type":"null"}]},"wilson95":{"oneOf":[{"$ref":"#/components/schemas/WilsonInterval"},{"type":"null"}]}}}},"unclaimed":{"type":"integer","minimum":0}}},"withheld":{"type":"array","description":"Fair-value promises not issued because no independent source would observe their outcome (for example a weekend\nhour for a company with no HIP-3 market, where only the bStock book itself would be left), per horizon and\nreason, over the window. A promise nobody independent can grade is withheld instead of left UNRESOLVED.\n","items":{"type":"object","additionalProperties":false,"required":["horizon","reason","count"],"properties":{"horizon":{"type":"string","enum":["PT1H","PT6H","NEXT_REGULAR_OPEN"]},"reason":{"type":"string"},"count":{"type":"integer","minimum":0}}}},"anchoring":{"type":"object","additionalProperties":false,"required":["confirmed","failed","latest"],"description":"The promise ledger's Merkle roots on BNB Smart Chain (AnchorRegistry); see /v1/anchors and /v1/promises/{promiseId}/proof.","properties":{"confirmed":{"type":"integer","minimum":0},"failed":{"type":"integer","minimum":0},"latest":{"oneOf":[{"$ref":"#/components/schemas/AnchorBatch"},{"type":"null"}]}}},"notes":{"type":"array","items":{"type":"string"}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"TokenCheckRequest":{"type":"object","additionalProperties":false,"required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":4096,"description":"An address, a link, a $ticker or a whole message. Never stored or logged; only its keccak256 digest enters the proof."},"mode":{"type":"string","enum":["identity","deep"],"default":"identity","description":"identity (free): who issued each token. deep (paid over b402): identity plus Binance's honeypot and transfer-tax reading and the token audit for every address the issuers do not list."}}},"TokenRef":{"type":"object","additionalProperties":false,"required":["address","family","role","symbol","ticker","exposure","name","routable"],"description":"A contract on an issuer's own list.","properties":{"address":{"$ref":"#/components/schemas/Address"},"family":{"$ref":"#/components/schemas/Issuer"},"role":{"type":"string","enum":["token","portfolio","wrapper","wrapper_v1","cash"]},"symbol":{"$ref":"#/components/schemas/UntrustedText"},"ticker":{"oneOf":[{"type":"string"},{"type":"null"}]},"exposure":{"oneOf":[{"type":"string"},{"type":"null"}]},"name":{"oneOf":[{"$ref":"#/components/schemas/UntrustedText"},{"type":"null"}]},"routable":{"type":"boolean"}}},"TokenClaimRef":{"type":"object","additionalProperties":false,"required":["family","ticker","symbol","address"],"description":"What a token claims to be, or the genuine contract it imitates.","properties":{"family":{"oneOf":[{"$ref":"#/components/schemas/Issuer"},{"type":"null"}]},"ticker":{"oneOf":[{"type":"string"},{"type":"null"}]},"symbol":{"oneOf":[{"$ref":"#/components/schemas/UntrustedText"},{"type":"null"}]},"address":{"oneOf":[{"$ref":"#/components/schemas/Address"},{"type":"null"}]}}},"TokenCheckItem":{"type":"object","additionalProperties":false,"required":["verdict","unknownReason","subject","genuine","imitates","resembles","claimant","matches","reasons","hazards","observed","fromPair","link","recheck","proof"],"properties":{"verdict":{"type":"string","enum":["GENUINE","GENUINE_NOT_ROUTABLE","IMPERSONATOR","FAMILY_CODE_UNLISTED","UNRELATED_TOKEN","WALLET_NOT_TOKEN","ADDRESS_LOOKALIKE","UNKNOWN","OFFICIAL_SITE","KNOWN_SITE","LOOKALIKE_DOMAIN","PHISHING_PATTERN","UNKNOWN_LINK"],"description":"Token verdicts for addresses and symbols; site verdicts for links (OFFICIAL_SITE: an issuer's, Binance's, BNB Chain's or this service's own domain; KNOWN_SITE: a well-known service, which does not vouch for the page it links; LOOKALIKE_DOMAIN: imitates a known site; PHISHING_PATTERN: matches a documented phishing family; UNKNOWN_LINK: we cannot vouch for the site). Links are never opened."},"unknownReason":{"oneOf":[{"type":"string","enum":["NO_CHAIN_DATA","CHAIN_READ_FAILED","NOT_A_TOKEN_CONTRACT","LIQUIDITY_PAIR","LISTED_NO_CODE","LISTED_FINGERPRINT_MISMATCH","SYMBOL_ONLY","UNKNOWN_SYMBOL","OTHER_CHAIN","FAMILY_LIST_UNAVAILABLE"]},{"type":"null"}]},"subject":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","address","via","host","chainHint","sendAsk","disguised"],"properties":{"kind":{"type":"string","const":"address"},"address":{"$ref":"#/components/schemas/Address"},"via":{"type":"string","enum":["text","url"]},"host":{"oneOf":[{"$ref":"#/components/schemas/UntrustedText"},{"type":"null"}]},"chainHint":{"oneOf":[{"type":"string"},{"type":"null"}]},"sendAsk":{"type":"boolean","description":"The text asks to send funds to this address."},"disguised":{"type":"boolean","description":"Written with invisible or look-alike characters."}}},{"type":"object","additionalProperties":false,"required":["kind","text","via","disguised"],"properties":{"kind":{"type":"string","const":"symbol"},"text":{"$ref":"#/components/schemas/UntrustedText"},"via":{"type":"string","enum":["cashtag","ticker"]},"disguised":{"type":"boolean"}}},{"type":"object","additionalProperties":false,"required":["kind","url","sendAsk","disguised"],"properties":{"kind":{"type":"string","const":"link"},"url":{"allOf":[{"$ref":"#/components/schemas/UntrustedText"}],"description":"Scheme, host and path as written; query and fragment are dropped. Never fetched."},"sendAsk":{"type":"boolean","description":"The text asks to send funds near this link."},"disguised":{"type":"boolean"}}}]},"genuine":{"oneOf":[{"$ref":"#/components/schemas/TokenRef"},{"type":"null"}]},"imitates":{"oneOf":[{"$ref":"#/components/schemas/TokenClaimRef"},{"type":"null"}]},"resembles":{"oneOf":[{"$ref":"#/components/schemas/TokenClaimRef"},{"type":"null"}]},"claimant":{"oneOf":[{"type":"string","enum":["bridged","test","other_issuer","unidentified"]},{"type":"null"}]},"matches":{"type":"array","description":"For a ticker or cashtag, the genuine contracts carrying it.","items":{"$ref":"#/components/schemas/TokenRef"}},"reasons":{"type":"array","items":{"type":"string"}},"hazards":{"type":"array","items":{"type":"string","enum":["SEND_FUNDS_REQUEST","LISTING_NOT_RECONFIRMED","UNIT_AMBIGUOUS","ISSUER_HALTED","HONEYPOT","TRANSFER_TAX","AUDIT_HIGH_RISK","AUDIT_MEDIUM_RISK","DISGUISED_TEXT"]}},"observed":{"description":"What BNB Smart Chain showed at `block`, when it was read.","oneOf":[{"type":"object","additionalProperties":false,"required":["block","symbol","name","decimals","codeHash","beacon","admin"],"properties":{"block":{"type":"integer","minimum":0},"symbol":{"oneOf":[{"$ref":"#/components/schemas/UntrustedText"},{"type":"null"}]},"name":{"oneOf":[{"$ref":"#/components/schemas/UntrustedText"},{"type":"null"}]},"decimals":{"oneOf":[{"type":"integer"},{"type":"null"}]},"codeHash":{"oneOf":[{"type":"string"},{"type":"null"}]},"beacon":{"oneOf":[{"type":"string"},{"type":"null"}]},"admin":{"oneOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"fromPair":{"description":"For a token found inside a liquidity pair, the pair's address.","oneOf":[{"$ref":"#/components/schemas/Address"},{"type":"null"}]},"link":{"description":"For a link, what its URL alone says about the site (null for addresses and symbols).","oneOf":[{"type":"object","additionalProperties":false,"required":["host","hostUnicode","registrableDomain","site","imitates","family","techniques"],"properties":{"host":{"$ref":"#/components/schemas/UntrustedText"},"hostUnicode":{"description":"The host with punycode labels decoded, when it differs from `host`.","oneOf":[{"$ref":"#/components/schemas/UntrustedText"},{"type":"null"}]},"registrableDomain":{"$ref":"#/components/schemas/UntrustedText"},"site":{"description":"The known site the host belongs to, with where it was confirmed.","oneOf":[{"type":"object","additionalProperties":false,"required":["domain","owner","category","source"],"properties":{"domain":{"type":"string"},"owner":{"type":"string"},"category":{"type":"string","enum":["issuer","platform","ours","service"]},"source":{"type":"string"}}},{"type":"null"}]},"imitates":{"description":"For LOOKALIKE_DOMAIN, the known site imitated.","oneOf":[{"type":"object","additionalProperties":false,"required":["domain","owner"],"properties":{"domain":{"type":"string"},"owner":{"type":"string"}}},{"type":"null"}]},"family":{"description":"For PHISHING_PATTERN, the documented family and its source.","oneOf":[{"type":"object","additionalProperties":false,"required":["id","name","source"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"source":{"type":"string"}}},{"type":"null"}]},"techniques":{"type":"array","items":{"type":"string","enum":["PUNYCODE","HOMOGLYPH","TYPOSQUAT","BRAND_IN_DOMAIN","SUBDOMAIN_TRICK","USERINFO_TRICK","SHORTENER","IP_HOST","NOT_HTTP","MALFORMED","LURE_WORDS","BRAND_IN_PATH"]}}}},{"type":"null"}]},"recheck":{"type":"string","description":"The subject alone, to check it again without the original text. An address, a $ticker, or for a link its scheme and host (the path can carry the reader's referral code or wallet, so it is left out)."},"proof":{"type":"object","additionalProperties":false,"required":["proofHash","canonical","signature"],"properties":{"proofHash":{"$ref":"#/components/schemas/Hex32"},"canonical":{"type":"string","description":"RFC 8785 canonical JSON of the proof payload; keccak256 of it is `proofHash`."},"signature":{"description":"EIP-712 TokenCheck signature by the attestor key, or null when the server holds none.","oneOf":[{"type":"object","additionalProperties":false,"required":["signer","signature","digest"],"properties":{"signer":{"$ref":"#/components/schemas/Address"},"signature":{"$ref":"#/components/schemas/HexData"},"digest":{"$ref":"#/components/schemas/Hex32"}}},{"type":"null"}]}}}}},"TokenCheck":{"type":"object","additionalProperties":false,"required":["items","dropped","inputDigest","checkedAt","registry","attestor","notice"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/TokenCheckItem"}},"dropped":{"type":"integer","minimum":0,"description":"Candidates found beyond the five checked per request."},"inputDigest":{"$ref":"#/components/schemas/Hex32"},"checkedAt":{"$ref":"#/components/schemas/Timestamp"},"registry":{"type":"object","additionalProperties":false,"required":["savedAt","instruments","sources"],"properties":{"savedAt":{"$ref":"#/components/schemas/Timestamp"},"instruments":{"type":"integer","minimum":0},"sources":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","fetchedAt","contentHash"],"properties":{"id":{"type":"string"},"fetchedAt":{"type":"string"},"contentHash":{"oneOf":[{"type":"string"},{"type":"null"}]}}}}}},"attestor":{"type":"object","additionalProperties":false,"required":["address","signed"],"properties":{"address":{"oneOf":[{"$ref":"#/components/schemas/Address"},{"type":"null"}]},"signed":{"type":"boolean"}}},"notice":{"type":"string"},"mode":{"type":"string","enum":["identity","deep"]},"hazardChecks":{"description":"Deep mode only. Which hazard readings ran, for how many addresses, and any that failed (a failed reading adds no hazard; it is listed here instead).","type":"array","items":{"type":"object","additionalProperties":false,"required":["provider","addresses","errors"],"properties":{"provider":{"type":"string","enum":["binance-quote","binance-token-audit"]},"addresses":{"type":"integer","minimum":0},"errors":{"type":"array","items":{"type":"string"}}}}}}},"ShariahStatus":{"type":"string","enum":["PASS","FAIL","QUESTIONABLE","UNRATED","STALE"]},"IntervalValue":{"type":"object","additionalProperties":false,"required":["lo","hi"],"description":"A value known only as a range, in whole units of `currency` with up to 6 decimals (hi null = unbounded above).","properties":{"lo":{"type":"string","pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"hi":{"oneOf":[{"type":"string","pattern":"^-?[0-9]+(\\.[0-9]+)?$"},{"type":"null"}]}}},"ShariahSource":{"type":"object","additionalProperties":false,"required":["document","section","url","status"],"properties":{"document":{"type":"string"},"section":{"oneOf":[{"type":"string"},{"type":"null"}]},"url":{"oneOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["VERIFIED_PRIMARY","SECONDARY","NOT_VERIFIED"]}}},"ShariahTest":{"type":"object","additionalProperties":false,"required":["id","kind","status","wouldBe","line","reason","ratioPct","limit","numerator","denominator","sic","source","inputsHash"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["ratio","income","activity"]},"status":{"$ref":"#/components/schemas/ShariahStatus"},"wouldBe":{"description":"For STALE, what the out-of-date inputs would give.","oneOf":[{"type":"string","enum":["PASS","FAIL","QUESTIONABLE","UNRATED"]},{"type":"null"}]},"line":{"type":"string","description":"The test in plain words, in the requested locale."},"reason":{"type":"object","additionalProperties":false,"required":["code","detail"],"properties":{"code":{"type":"string"},"detail":{"type":"string"}}},"ratioPct":{"description":"Ratio bounds in percent (hi null = unbounded).","oneOf":[{"type":"object","additionalProperties":false,"required":["lo","hi"],"properties":{"lo":{"type":"string"},"hi":{"oneOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"limit":{"oneOf":[{"type":"object","additionalProperties":false,"required":["pct","operator","lenientPct"],"properties":{"pct":{"type":"string"},"operator":{"type":"string","enum":["lt","lte"]},"lenientPct":{"oneOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"numerator":{"oneOf":[{"type":"object","additionalProperties":false,"required":["metrics","value"],"properties":{"metrics":{"type":"array","items":{"type":"string"}},"value":{"$ref":"#/components/schemas/IntervalValue"}}},{"type":"null"}]},"denominator":{"oneOf":[{"type":"object","additionalProperties":false,"required":["label","value","marketValue"],"properties":{"label":{"type":"string"},"value":{"$ref":"#/components/schemas/IntervalValue"},"marketValue":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","source","from","to","lowerBoundOnly"],"properties":{"kind":{"type":"string","enum":["average","pointInTime"]},"source":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"lowerBoundOnly":{"type":"boolean"}}},{"type":"null"}]}}},{"type":"null"}]},"sic":{"oneOf":[{"type":"object","additionalProperties":false,"required":["code","description"],"properties":{"code":{"type":"string"},"description":{"type":"string"}}},{"type":"null"}]},"source":{"$ref":"#/components/schemas/ShariahSource"},"inputsHash":{"$ref":"#/components/schemas/Hex32"}}},"ShariahInput":{"type":"object","additionalProperties":false,"required":["metric","known","value","basis","reason","facts"],"description":"One input with every reported fact it was built from (tag, period, filing and its date).","properties":{"metric":{"type":"string"},"known":{"type":"boolean"},"value":{"oneOf":[{"$ref":"#/components/schemas/IntervalValue"},{"type":"null"}]},"basis":{"oneOf":[{"type":"string","enum":["instant","ttm-annual","ttm-derived"]},{"type":"null"}]},"reason":{"description":"Why the input is unknown.","oneOf":[{"type":"string"},{"type":"null"}]},"facts":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["tag","value","start","end","form","accession","filed"],"properties":{"tag":{"type":"string"},"value":{"type":"string"},"start":{"oneOf":[{"type":"string"},{"type":"null"}]},"end":{"type":"string"},"form":{"type":"string"},"accession":{"type":"string"},"filed":{"type":"string"}}}}}},"ShariahWrapper":{"type":"object","additionalProperties":false,"required":["issuer","issuerLabel","status","holds","line","facts","openQuestions","reviewedBy","reviewedAt","version","hash"],"properties":{"issuer":{"$ref":"#/components/schemas/Issuer"},"issuerLabel":{"type":"string"},"status":{"type":"string","enum":["NOT_REVIEWED","PERMISSIBLE","PERMISSIBLE_WITH_CONDITIONS","NOT_PERMISSIBLE"]},"holds":{"type":"string","enum":["note","certificate","beneficial_interest"]},"line":{"type":"string","description":"What a holder owns and the review status, in the requested locale."},"facts":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["fact","source","status"],"properties":{"fact":{"type":"string"},"source":{"type":"string"},"status":{"type":"string","enum":["VERIFIED_PRIMARY","SECONDARY","NOT_VERIFIED"]}}}},"openQuestions":{"type":"array","items":{"type":"string"}},"reviewedBy":{"oneOf":[{"type":"string"},{"type":"null"}]},"reviewedAt":{"oneOf":[{"type":"string"},{"type":"null"}]},"version":{"type":"string"},"hash":{"$ref":"#/components/schemas/Hex32"}}},"ShariahScreen":{"type":"object","additionalProperties":false,"required":["ticker","exposure","name","status","notScreened","methodology","methodologies","screen","wrappers","disclaimer","copy","archive","provenance"],"properties":{"ticker":{"type":"string"},"exposure":{"type":"string"},"name":{"oneOf":[{"$ref":"#/components/schemas/UntrustedText"},{"type":"null"}]},"status":{"type":"string","enum":["SCREENED","NOT_SCREENED"]},"notScreened":{"description":"Why there is no screen. Null when SCREENED.","oneOf":[{"type":"object","additionalProperties":false,"required":["code","detail"],"properties":{"code":{"type":"string","enum":["NOT_AN_EQUITY","NO_EDGAR_ARCHIVE","NO_FUNDAMENTALS","EDGAR_UNAVAILABLE","FUNDAMENTALS_UNREADABLE"]},"detail":{"type":"string"}}},{"type":"null"}]},"methodology":{"type":"object","additionalProperties":false,"required":["id","version","name","shortName","publisher","hash","notes"],"properties":{"id":{"type":"string"},"version":{"type":"string"},"name":{"type":"string"},"shortName":{"type":"string"},"publisher":{"type":"string"},"hash":{"$ref":"#/components/schemas/Hex32"},"notes":{"type":"array","items":{"type":"string"}}}},"methodologies":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","shortName","name"],"properties":{"id":{"type":"string"},"shortName":{"type":"string"},"name":{"type":"string"}}}},"screen":{"oneOf":[{"type":"object","additionalProperties":false,"required":["overall","headline","counts","company","filing","currency","asOf","inputsHash","tests","inputs"],"properties":{"overall":{"$ref":"#/components/schemas/ShariahStatus"},"headline":{"type":"string"},"counts":{"type":"object","additionalProperties":false,"required":["PASS","FAIL","QUESTIONABLE","UNRATED","STALE","total"],"properties":{"PASS":{"type":"integer"},"FAIL":{"type":"integer"},"QUESTIONABLE":{"type":"integer"},"UNRATED":{"type":"integer"},"STALE":{"type":"integer"},"total":{"type":"integer"}}},"company":{"type":"object","additionalProperties":false,"required":["cik","name"],"properties":{"cik":{"type":"integer"},"name":{"$ref":"#/components/schemas/UntrustedText"}}},"filing":{"type":"object","additionalProperties":false,"required":["form","accession","filed","periodEnd","fetchedAt"],"properties":{"form":{"type":"string"},"accession":{"type":"string"},"filed":{"type":"string"},"periodEnd":{"type":"string"},"fetchedAt":{"$ref":"#/components/schemas/Timestamp"}}},"currency":{"type":"string"},"asOf":{"$ref":"#/components/schemas/Timestamp"},"inputsHash":{"$ref":"#/components/schemas/Hex32"},"tests":{"type":"array","items":{"$ref":"#/components/schemas/ShariahTest"}},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/ShariahInput"}}}},{"type":"null"}]},"wrappers":{"type":"array","items":{"$ref":"#/components/schemas/ShariahWrapper"}},"disclaimer":{"type":"string","description":"The words \"Information, not a fatwa.\" in the requested locale."},"copy":{"type":"object","additionalProperties":false,"required":["locale","review"],"properties":{"locale":{"type":"string","enum":["en","ar","id"]},"review":{"type":"string","enum":["FINAL","DRAFT_NEEDS_NATIVE_AND_SCHOLAR_REVIEW"]}}},"archive":{"type":"object","additionalProperties":false,"required":["present","lastRunAt"],"description":"The EDGAR job's archive on this server.","properties":{"present":{"type":"boolean"},"lastRunAt":{"oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]}}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"RateValue":{"type":"string","description":"A rate as a fraction with 18 decimals, signed (\"0.255800000000000000\" is 25.58%).","pattern":"^-?[0-9]+\\.[0-9]{18}$"},"TextOrRedacted":{"oneOf":[{"type":"string"},{"$ref":"#/components/schemas/Redacted"}]},"Figure":{"type":"object","additionalProperties":false,"required":["value","reason"],"description":"A figure, or why there is none (never a default number).","properties":{"value":{"oneOf":[{"$ref":"#/components/schemas/RateValue"},{"type":"null"}]},"reason":{"oneOf":[{"type":"string"},{"type":"null"}]}}},"FigureOrRedacted":{"oneOf":[{"$ref":"#/components/schemas/Figure"},{"$ref":"#/components/schemas/Redacted"}]},"NullableUsdOrRedacted":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"$ref":"#/components/schemas/Redacted"},{"type":"null"}]},"PriceSource":{"type":"object","additionalProperties":false,"required":["perShare","source"],"properties":{"perShare":{"$ref":"#/components/schemas/UsdOrRedacted"},"source":{"type":"string"}}},"PortfolioReturns":{"type":"object","additionalProperties":false,"required":["from","to","ttwror","ttwrorPercent","ttwrorPa","irr","irrPercent","irrMayNotBeUnique","simple","gain","invested","withdrawn","valueNow","carriedDays","series"],"properties":{"from":{"$ref":"#/components/schemas/Timestamp"},"to":{"$ref":"#/components/schemas/Timestamp"},"ttwror":{"$ref":"#/components/schemas/FigureOrRedacted"},"ttwrorPercent":{"oneOf":[{"$ref":"#/components/schemas/TextOrRedacted"},{"type":"null"}]},"ttwrorPa":{"$ref":"#/components/schemas/FigureOrRedacted"},"irr":{"$ref":"#/components/schemas/FigureOrRedacted"},"irrPercent":{"oneOf":[{"$ref":"#/components/schemas/TextOrRedacted"},{"type":"null"}]},"irrMayNotBeUnique":{"description":"True when the cash flows change sign more than once, so another rate could also satisfy the IRR equation.","oneOf":[{"type":"boolean"},{"type":"null"}]},"simple":{"$ref":"#/components/schemas/FigureOrRedacted"},"gain":{"$ref":"#/components/schemas/NullableUsdOrRedacted"},"invested":{"$ref":"#/components/schemas/Usd"},"withdrawn":{"$ref":"#/components/schemas/Usd"},"valueNow":{"$ref":"#/components/schemas/NullableUsdOrRedacted"},"carriedDays":{"type":"integer","minimum":0,"description":"Days valued at an earlier close because the token did not trade that day."},"series":{"oneOf":[{"type":"array","items":{"type":"object","additionalProperties":false,"required":["day","cumulative","value"],"properties":{"day":{"type":"string","description":"UTC day, YYYY-MM-DD."},"cumulative":{"$ref":"#/components/schemas/RateValue"},"value":{"$ref":"#/components/schemas/Usd"}}}},{"$ref":"#/components/schemas/Redacted"}]}}},"GainDecomposition":{"type":"object","additionalProperties":false,"required":["gain","underlying","premium","priceMoveUnsplit","steps","entryCosts","premiumPaidBps","premiumNowBps"],"description":"Value now minus cost, split exactly into the company's own price move, the token's premium change, shares added by dividend steps at today's price, and entry costs. Splits are neither gain nor loss.","properties":{"gain":{"$ref":"#/components/schemas/NullableUsdOrRedacted"},"underlying":{"$ref":"#/components/schemas/NullableUsdOrRedacted"},"premium":{"$ref":"#/components/schemas/NullableUsdOrRedacted"},"priceMoveUnsplit":{"description":"Underlying and premium together, when no real price exists at one end to tell them apart.","allOf":[{"$ref":"#/components/schemas/NullableUsdOrRedacted"}]},"steps":{"$ref":"#/components/schemas/NullableUsdOrRedacted"},"entryCosts":{"$ref":"#/components/schemas/Usd"},"premiumPaidBps":{"oneOf":[{"$ref":"#/components/schemas/TextOrRedacted"},{"type":"null"}]},"premiumNowBps":{"oneOf":[{"$ref":"#/components/schemas/TextOrRedacted"},{"type":"null"}]}}},"WalletApiCheck":{"type":"object","additionalProperties":false,"required":["wallet","status","matched","differing","detail"],"properties":{"wallet":{"$ref":"#/components/schemas/Address"},"status":{"type":"string","enum":["MATCH","DIFFERS","UNAVAILABLE"]},"matched":{"type":"integer","minimum":0},"differing":{"type":"array","items":{"type":"string"}},"detail":{"type":"string"}}},"PortfolioPosition":{"type":"object","additionalProperties":false,"required":["ticker","exposure","name","shares","sharesComplete","valueNow","basisOpen","basisReason","realNow","realReason","wrappers","lots","realized","dividends","decomposition","returns","deed"],"properties":{"ticker":{"type":"string"},"exposure":{"type":"string"},"name":{"oneOf":[{"type":"string"},{"type":"null"}]},"shares":{"$ref":"#/components/schemas/SharesValue"},"sharesComplete":{"type":"boolean","description":"False when a held wrapper's shares are unknown, so `shares` is a lower bound."},"valueNow":{"$ref":"#/components/schemas/NullableUsdOrRedacted"},"basisOpen":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"basisReason":{"oneOf":[{"type":"string"},{"type":"null"}]},"realNow":{"oneOf":[{"$ref":"#/components/schemas/PriceSource"},{"type":"null"}]},"realReason":{"oneOf":[{"type":"string"},{"type":"null"}]},"wrappers":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["symbol","issuer","address","tokens","shares","ratio","ratioReason","pricePerShare","value","reconciliation","pending"],"properties":{"symbol":{"type":"string"},"issuer":{"$ref":"#/components/schemas/Issuer"},"address":{"$ref":"#/components/schemas/Address"},"tokens":{"$ref":"#/components/schemas/TokenAmount"},"shares":{"oneOf":[{"$ref":"#/components/schemas/SharesValue"},{"type":"null"}]},"ratio":{"oneOf":[{"$ref":"#/components/schemas/RatioValue"},{"type":"null"}]},"ratioReason":{"oneOf":[{"type":"string"},{"type":"null"}]},"pricePerShare":{"$ref":"#/components/schemas/NullableUsdOrRedacted"},"value":{"$ref":"#/components/schemas/NullableUsdOrRedacted"},"reconciliation":{"type":"object","additionalProperties":false,"required":["status","explainedRaw","detail"],"properties":{"status":{"type":"string","enum":["MATCH","OPENING_BALANCE_ADDED","HISTORY_EXCEEDS_HOLDING"]},"explainedRaw":{"$ref":"#/components/schemas/IntString"},"detail":{"type":"string"}}},"pending":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","next","at","exact","sharesAdded","class"],"properties":{"kind":{"type":"string","enum":["scheduled","corporate_action"]},"next":{"$ref":"#/components/schemas/RatioValue"},"at":{"$ref":"#/components/schemas/Timestamp"},"exact":{"type":"boolean","description":"True for a bStock's scheduled time; false for Ondo's earliest possible time."},"sharesAdded":{"$ref":"#/components/schemas/SharesValue"},"class":{"type":"string"}}},{"type":"null"}]}}}},"lots":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","symbol","openedAt","openTx","how","tokensOpen","sharesAtOpen","sharesNow","cost","costMethod","costDetail","basisOpen","basisPerShare","valueNow","realAtOpen","decomposition","decompositionReason"],"properties":{"id":{"type":"string"},"symbol":{"type":"string"},"openedAt":{"$ref":"#/components/schemas/Timestamp"},"openTx":{"type":"string"},"how":{"type":"string","enum":["BUY","TRANSFER_IN","OPENING_BALANCE"]},"tokensOpen":{"$ref":"#/components/schemas/UintString"},"sharesAtOpen":{"oneOf":[{"$ref":"#/components/schemas/SharesValue"},{"type":"null"}]},"sharesNow":{"oneOf":[{"$ref":"#/components/schemas/SharesValue"},{"type":"null"}]},"cost":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"costMethod":{"oneOf":[{"type":"string","enum":["STABLE_LEG","NATIVE_AT_MARKET","ROUTE_IMPLIED","BINANCE_VALUATION","MARKET_VALUE"]},{"type":"null"}]},"costDetail":{"type":"string"},"basisOpen":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"basisPerShare":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"valueNow":{"$ref":"#/components/schemas/NullableUsdOrRedacted"},"realAtOpen":{"oneOf":[{"$ref":"#/components/schemas/PriceSource"},{"type":"null"}]},"decomposition":{"oneOf":[{"$ref":"#/components/schemas/GainDecomposition"},{"type":"null"}]},"decompositionReason":{"oneOf":[{"type":"string"},{"type":"null"}]}}}},"realized":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["at","tx","how","tokens","basis","proceeds","gain","heldDays"],"properties":{"at":{"$ref":"#/components/schemas/Timestamp"},"tx":{"type":"string"},"how":{"type":"string","enum":["SELL","TRANSFER_OUT"]},"tokens":{"$ref":"#/components/schemas/UintString"},"basis":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"proceeds":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"gain":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"heldDays":{"type":"integer","minimum":0}}}},"dividends":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["at","tx","symbol","class","rule","from","to","factorPercent","tokensHeld","sharesAdded","valueAtStep"],"properties":{"at":{"$ref":"#/components/schemas/Timestamp"},"tx":{"type":"string"},"symbol":{"type":"string"},"class":{"type":"string","enum":["DIVIDEND","SPLIT","REVERSE_SPLIT","OTHER_CORPORATE_ACTION","INIT","NO_CHANGE"]},"rule":{"type":"string"},"from":{"$ref":"#/components/schemas/RatioValue"},"to":{"$ref":"#/components/schemas/RatioValue"},"factorPercent":{"description":"The step's change in shares per token, in % with 4 decimals.","oneOf":[{"type":"string"},{"type":"null"}]},"tokensHeld":{"$ref":"#/components/schemas/UintString"},"sharesAdded":{"$ref":"#/components/schemas/SharesValue"},"valueAtStep":{"$ref":"#/components/schemas/NullableUsdOrRedacted"}}}},"decomposition":{"oneOf":[{"$ref":"#/components/schemas/GainDecomposition"},{"type":"null"}]},"returns":{"$ref":"#/components/schemas/PortfolioReturns"},"deed":{"type":"object","additionalProperties":false,"required":["shares","complete","heldSince","sharesFromSteps","holdings"],"properties":{"shares":{"$ref":"#/components/schemas/SharesValue"},"complete":{"type":"boolean"},"heldSince":{"oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]},"sharesFromSteps":{"$ref":"#/components/schemas/SharesValue"},"holdings":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["issuer","symbol","address","tokens","shares","sharesPerToken","facts","attestations"],"properties":{"issuer":{"$ref":"#/components/schemas/Issuer"},"symbol":{"type":"string"},"address":{"$ref":"#/components/schemas/Address"},"tokens":{"$ref":"#/components/schemas/UintString"},"shares":{"oneOf":[{"$ref":"#/components/schemas/SharesValue"},{"type":"null"}]},"sharesPerToken":{"oneOf":[{"$ref":"#/components/schemas/RatioValue"},{"type":"null"}]},"facts":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","statement","status","source"],"properties":{"id":{"type":"string"},"statement":{"type":"string"},"status":{"type":"string","enum":["OBSERVED","DOCUMENTED","NOT_VERIFIED"]},"source":{"type":"string"}}}},"attestations":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["kind","supported","url"],"properties":{"kind":{"type":"string"},"supported":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"url":{"oneOf":[{"type":"string"},{"type":"null"}]}}}}}}}}}}},"Portfolio":{"type":"object","additionalProperties":false,"required":["wallets","asOf","historyFrom","positions","returns","history","walletApi","unmatched","warnings","method","notVerified","provenance"],"properties":{"wallets":{"type":"array","items":{"$ref":"#/components/schemas/Address"}},"asOf":{"$ref":"#/components/schemas/Timestamp"},"historyFrom":{"$ref":"#/components/schemas/Timestamp"},"positions":{"type":"array","items":{"$ref":"#/components/schemas/PortfolioPosition"}},"returns":{"$ref":"#/components/schemas/PortfolioReturns"},"history":{"type":"object","additionalProperties":false,"required":["transactionsChecked","transactionsSkipped","coverage"],"properties":{"transactionsChecked":{"type":"integer","minimum":0},"transactionsSkipped":{"type":"integer","minimum":0},"coverage":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["source","status","detail"],"properties":{"source":{"type":"string","enum":["wallet_api","dex_history","receipts","ratio_steps","candles","bnb_price"]},"status":{"type":"string","enum":["OK","PARTIAL","UNAVAILABLE"]},"detail":{"type":"string"}}}}}},"walletApi":{"type":"array","items":{"$ref":"#/components/schemas/WalletApiCheck"}},"unmatched":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["at","tx","symbol","tokens","reason"],"properties":{"at":{"$ref":"#/components/schemas/Timestamp"},"tx":{"type":"string"},"symbol":{"type":"string"},"tokens":{"$ref":"#/components/schemas/UintString"},"reason":{"type":"string"}}}},"warnings":{"type":"array","items":{"type":"string"}},"method":{"type":"string"},"notVerified":{"type":"array","items":{"type":"string"}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"RouteCandidate":{"type":"object","additionalProperties":false,"required":["id","venue","issuer","symbol","status","executableHere","reason","gate","sharesQuoted","sharesExpected","netShares","pricePerShare","allInPerShare","basis","costs","absurd","chosen","isD0","isD1"],"properties":{"id":{"type":"string","description":"VenueRouter candidate id, e.g. aggregator:bstock, kyber:ondo, cow:xstock."},"venue":{"type":"string"},"issuer":{"oneOf":[{"$ref":"#/components/schemas/Issuer"},{"type":"null"}]},"symbol":{"oneOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["PRICED","FAILED","EXCLUDED","UNAVAILABLE"]},"executableHere":{"type":"boolean"},"reason":{"oneOf":[{"type":"string"},{"type":"null"}]},"gate":{"oneOf":[{"type":"object","additionalProperties":false,"required":["decision","reasons"],"properties":{"decision":{"type":"string","enum":["GO","CAUTION","BLOCK"]},"reasons":{"type":"array","items":{"type":"string"}}}},{"type":"null"}]},"sharesQuoted":{"oneOf":[{"$ref":"#/components/schemas/SharesValue"},{"type":"null"}]},"sharesExpected":{"oneOf":[{"$ref":"#/components/schemas/SharesValue"},{"type":"null"}]},"netShares":{"description":"Shares the same dollars buy after every modelled cost, before our fee; the ranking figure.","oneOf":[{"$ref":"#/components/schemas/SharesValue"},{"type":"null"}]},"pricePerShare":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"allInPerShare":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"basis":{"oneOf":[{"type":"string","enum":["SIMULATED","ESTIMATED_FROM_QUOTE"]},{"type":"null"}]},"costs":{"oneOf":[{"type":"object","additionalProperties":false,"required":["gasUsd","approvalUsd","requoteUsd","exitUsd","fillShortfallUsd","complete"],"properties":{"gasUsd":{"$ref":"#/components/schemas/Usd"},"approvalUsd":{"$ref":"#/components/schemas/Usd"},"requoteUsd":{"$ref":"#/components/schemas/Usd"},"exitUsd":{"$ref":"#/components/schemas/Usd"},"fillShortfallUsd":{"$ref":"#/components/schemas/Usd"},"complete":{"type":"boolean","description":"False when a component entered at a conservative default rather than a measurement."}}},{"type":"null"}]},"absurd":{"type":"boolean"},"chosen":{"type":"boolean"},"isD0":{"type":"boolean"},"isD1":{"type":"boolean"}}},"DefaultSaving":{"type":"object","additionalProperties":false,"required":["shares","bps"],"description":"Expected shares of our pick minus the default's, before our fee.","properties":{"shares":{"$ref":"#/components/schemas/SharesValue"},"bps":{"$ref":"#/components/schemas/Bps"}}},"RouteComparison":{"type":"object","additionalProperties":false,"required":["ticker","exposure","sizeUsd","session","decidedAt","chosen","noChoiceReason","d0","d1","vsD0","vsD1","runnerUp","candidates","notPriced","ratios","budget","flags","method","notVerified","provenance"],"properties":{"ticker":{"type":"string"},"exposure":{"type":"string"},"sizeUsd":{"$ref":"#/components/schemas/Usd"},"session":{"$ref":"#/components/schemas/Session"},"decidedAt":{"$ref":"#/components/schemas/Timestamp"},"chosen":{"oneOf":[{"type":"string"},{"type":"null"}]},"noChoiceReason":{"oneOf":[{"type":"string"},{"type":"null"}]},"d0":{"oneOf":[{"type":"string"},{"type":"null"}]},"d1":{"oneOf":[{"type":"object","additionalProperties":false,"required":["id","volumeUsd"],"properties":{"id":{"type":"string"},"volumeUsd":{"$ref":"#/components/schemas/Usd"}}},{"type":"null"}]},"vsD0":{"oneOf":[{"$ref":"#/components/schemas/DefaultSaving"},{"type":"null"}]},"vsD1":{"oneOf":[{"$ref":"#/components/schemas/DefaultSaving"},{"type":"null"}]},"runnerUp":{"oneOf":[{"type":"object","additionalProperties":false,"required":["id","why"],"properties":{"id":{"type":"string"},"why":{"type":"string"}}},{"type":"null"}]},"candidates":{"type":"array","items":{"$ref":"#/components/schemas/RouteCandidate"}},"notPriced":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","status","reason"],"properties":{"id":{"type":"string"},"status":{"type":"string","enum":["PRICED","FAILED","EXCLUDED","UNAVAILABLE"]},"reason":{"oneOf":[{"type":"string"},{"type":"null"}]}}}},"ratios":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["issuer","symbol","ratio","source","reason"],"properties":{"issuer":{"$ref":"#/components/schemas/Issuer"},"symbol":{"type":"string"},"ratio":{"oneOf":[{"$ref":"#/components/schemas/RatioValue"},{"type":"null"}]},"source":{"oneOf":[{"type":"string"},{"type":"null"}]},"reason":{"oneOf":[{"type":"string"},{"type":"null"}]}}}},"budget":{"type":"object","additionalProperties":false,"required":["binanceQuotes","limit","rivalQuotes"],"properties":{"binanceQuotes":{"type":"integer","minimum":0},"limit":{"type":"integer","minimum":0},"rivalQuotes":{"type":"integer","minimum":0}}},"flags":{"type":"array","items":{"type":"string"}},"method":{"type":"string"},"notVerified":{"type":"array","items":{"type":"string"}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"MigrationOption":{"type":"object","additionalProperties":false,"required":["from","to","status","sharesNow","sharesAfter","shareChange","shareChangeBps","proceedsUsd","sellRoute","buyRoute","reason"],"properties":{"from":{"type":"string"},"to":{"type":"string"},"status":{"type":"string","enum":["SAVES_SHARES","COSTS_SHARES","NO_SELL_ROUTE","NO_BUY_ROUTE"]},"sharesNow":{"$ref":"#/components/schemas/SharesValue"},"sharesAfter":{"oneOf":[{"$ref":"#/components/schemas/SharesValue"},{"type":"null"}]},"shareChange":{"oneOf":[{"$ref":"#/components/schemas/SharesValue"},{"type":"null"}]},"shareChangeBps":{"oneOf":[{"$ref":"#/components/schemas/Bps"},{"type":"null"}]},"proceedsUsd":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"sellRoute":{"oneOf":[{"type":"string"},{"type":"null"}]},"buyRoute":{"oneOf":[{"type":"string"},{"type":"null"}]},"reason":{"oneOf":[{"type":"string"},{"type":"null"}]}}},"WrapperMigration":{"type":"object","additionalProperties":false,"required":["address","ticker","holdings","options","execution","method","notVerified","provenance"],"properties":{"address":{"$ref":"#/components/schemas/Address"},"ticker":{"type":"string"},"holdings":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["symbol","issuer","tokens","shares"],"properties":{"symbol":{"type":"string"},"issuer":{"$ref":"#/components/schemas/Issuer"},"tokens":{"$ref":"#/components/schemas/UintString"},"shares":{"$ref":"#/components/schemas/SharesValue"}}}},"options":{"type":"array","items":{"$ref":"#/components/schemas/MigrationOption"}},"execution":{"type":"string","enum":["PREVIEW_ONLY"]},"method":{"type":"string"},"notVerified":{"type":"array","items":{"type":"string"}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"ArenaSummary":{"type":"object","additionalProperties":false,"required":["cells","scored","notScored","within1BpPercent","within1BpPermittedPercent","medianRegretBps","p95RegretBps","medianVsD0Bps","medianVsD1Bps","bestVenueCounts","causes","absurdQuotes","absurdChosen","passWithin1Bp","passAbsurdBlocked"],"properties":{"cells":{"type":"integer","minimum":0},"scored":{"type":"integer","minimum":0},"notScored":{"type":"object","additionalProperties":{"type":"integer"}},"within1BpPercent":{"oneOf":[{"type":"string"},{"type":"null"}]},"within1BpPermittedPercent":{"oneOf":[{"type":"string"},{"type":"null"}]},"medianRegretBps":{"oneOf":[{"$ref":"#/components/schemas/Bps"},{"type":"null"}]},"p95RegretBps":{"oneOf":[{"$ref":"#/components/schemas/Bps"},{"type":"null"}]},"medianVsD0Bps":{"oneOf":[{"$ref":"#/components/schemas/Bps"},{"type":"null"}]},"medianVsD1Bps":{"oneOf":[{"$ref":"#/components/schemas/Bps"},{"type":"null"}]},"bestVenueCounts":{"type":"object","additionalProperties":{"type":"integer"}},"causes":{"type":"object","additionalProperties":{"type":"integer"}},"absurdQuotes":{"type":"integer","minimum":0},"absurdChosen":{"type":"integer","minimum":0},"passWithin1Bp":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"passAbsurdBlocked":{"type":"boolean"}}},"ArenaCell":{"type":"object","additionalProperties":false,"required":["cycleAt","ticker","sizeUsd","session","skewMs","chosen","best","regretBps","cause","scored","notScoredReason","quotes"],"properties":{"cycleAt":{"$ref":"#/components/schemas/Timestamp"},"ticker":{"type":"string"},"sizeUsd":{"$ref":"#/components/schemas/Usd"},"session":{"type":"string"},"skewMs":{"type":"integer","minimum":0},"chosen":{"oneOf":[{"type":"string"},{"type":"null"}]},"best":{"oneOf":[{"type":"string"},{"type":"null"}]},"regretBps":{"oneOf":[{"$ref":"#/components/schemas/Bps"},{"type":"null"}]},"cause":{"oneOf":[{"type":"string","enum":["BEST_BLOCKED_BY_POLICY","BEST_HAS_RFQ_REQUOTE_RISK","BEST_FILL_UNMEASURED","EXIT_COST","OTHER"]},{"type":"null"}]},"scored":{"type":"boolean"},"notScoredReason":{"oneOf":[{"type":"string"},{"type":"null"}]},"quotes":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["candidate","venue","issuer","status","deliveredShares","perTokenUsd","gasUsd","absurd","gate","chosen","reason"],"properties":{"candidate":{"type":"string"},"venue":{"type":"string","enum":["binance","binance-pancake","kyber","cow","binance-cex","jupiter"]},"issuer":{"$ref":"#/components/schemas/Issuer"},"status":{"type":"string","enum":["PRICED","FAILED","EXCLUDED","UNAVAILABLE"]},"deliveredShares":{"oneOf":[{"$ref":"#/components/schemas/SharesValue"},{"type":"null"}]},"perTokenUsd":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"gasUsd":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"absurd":{"type":"boolean"},"gate":{"oneOf":[{"type":"string"},{"type":"null"}]},"chosen":{"type":"boolean"},"reason":{"oneOf":[{"type":"string"},{"type":"null"}]}}}}}},"RouteArena":{"type":"object","additionalProperties":false,"required":["window","ticker","summary","wrappers","venues","bars","cells","method","notVerified","provenance"],"properties":{"window":{"type":"object","additionalProperties":false,"required":["from","to","hours"],"properties":{"from":{"$ref":"#/components/schemas/Timestamp"},"to":{"$ref":"#/components/schemas/Timestamp"},"hours":{"type":"integer","minimum":1}}},"ticker":{"oneOf":[{"type":"string"},{"type":"null"}]},"summary":{"$ref":"#/components/schemas/ArenaSummary"},"wrappers":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["issuer","summary"],"properties":{"issuer":{"$ref":"#/components/schemas/Issuer"},"summary":{"$ref":"#/components/schemas/ArenaSummary"}}}},"venues":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["venue","quotes","priced","failed","absurd","best"],"properties":{"venue":{"type":"string"},"quotes":{"type":"integer","minimum":0},"priced":{"type":"integer","minimum":0},"failed":{"type":"integer","minimum":0},"absurd":{"type":"integer","minimum":0},"best":{"type":"integer","minimum":0}}}},"bars":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","description","value","target","pass"],"properties":{"id":{"type":"string"},"description":{"type":"string"},"value":{"type":"string"},"target":{"type":"string"},"pass":{"oneOf":[{"type":"boolean"},{"type":"null"}]}}}},"cells":{"type":"array","items":{"$ref":"#/components/schemas/ArenaCell"}},"method":{"type":"string"},"notVerified":{"type":"array","items":{"type":"string"}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"ChartMove":{"type":"object","additionalProperties":false,"required":["symbol","issuer","points","reason"],"properties":{"symbol":{"type":"string"},"issuer":{"$ref":"#/components/schemas/Issuer"},"points":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["at","changePct"],"properties":{"at":{"$ref":"#/components/schemas/Timestamp"},"changePct":{"type":"string","description":"% change from the window's first open, 2 decimals, signed."}}}},"reason":{"oneOf":[{"type":"string"},{"type":"null"}]}}},"CompanyChart":{"type":"object","additionalProperties":false,"required":["ticker","window","sessions","executable","moves","bar","method","provenance"],"properties":{"ticker":{"type":"string"},"window":{"type":"object","additionalProperties":false,"required":["from","to","hours"],"properties":{"from":{"$ref":"#/components/schemas/Timestamp"},"to":{"$ref":"#/components/schemas/Timestamp"},"hours":{"type":"integer","minimum":1}}},"sessions":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["from","to","session"],"properties":{"from":{"$ref":"#/components/schemas/Timestamp"},"to":{"$ref":"#/components/schemas/Timestamp"},"session":{"type":"string"}}}},"executable":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["symbol","issuer","sizeUsd","points"],"properties":{"symbol":{"type":"string"},"issuer":{"oneOf":[{"$ref":"#/components/schemas/Issuer"},{"type":"null"}]},"sizeUsd":{"$ref":"#/components/schemas/Usd"},"points":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["at","perShare"],"properties":{"at":{"$ref":"#/components/schemas/Timestamp"},"perShare":{"$ref":"#/components/schemas/Usd"}}}}}}},"moves":{"type":"array","items":{"$ref":"#/components/schemas/ChartMove"}},"bar":{"type":"string"},"method":{"type":"string"},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"WrapperMarket":{"type":"object","additionalProperties":false,"required":["symbol","issuer","address","change24hPct","buyShareOfVolumePct","top1HolderPct","top10HoldersPct","holders","volume24hUsd","reportedVolume24hUsd","notes"],"properties":{"symbol":{"type":"string"},"issuer":{"$ref":"#/components/schemas/Issuer"},"address":{"$ref":"#/components/schemas/Address"},"change24hPct":{"oneOf":[{"$ref":"#/components/schemas/TextOrRedacted"},{"type":"null"}]},"buyShareOfVolumePct":{"oneOf":[{"$ref":"#/components/schemas/TextOrRedacted"},{"type":"null"}]},"top1HolderPct":{"oneOf":[{"$ref":"#/components/schemas/TextOrRedacted"},{"type":"null"}]},"top10HoldersPct":{"oneOf":[{"$ref":"#/components/schemas/TextOrRedacted"},{"type":"null"}]},"holders":{"oneOf":[{"$ref":"#/components/schemas/TextOrRedacted"},{"type":"null"}]},"volume24hUsd":{"oneOf":[{"$ref":"#/components/schemas/TextOrRedacted"},{"type":"null"}]},"reportedVolume24hUsd":{"oneOf":[{"$ref":"#/components/schemas/TextOrRedacted"},{"type":"null"}]},"notes":{"type":"array","items":{"type":"string"}}}},"CompanyMarket":{"type":"object","additionalProperties":false,"required":["ticker","wrappers","method","provenance"],"properties":{"ticker":{"type":"string"},"wrappers":{"type":"array","items":{"$ref":"#/components/schemas/WrapperMarket"}},"method":{"type":"string"},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"ExecAddress":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"ExecUint":{"type":"string","description":"A non-negative integer as a decimal string (token smallest units, wei, gas).","pattern":"^[0-9]{1,78}$"},"ExecSignedInt":{"type":"string","pattern":"^-?[0-9]{1,78}$"},"ExecHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"ExecDecision":{"type":"string","enum":["GO","CAUTION","BLOCK"]},"ExecDraftRequest":{"type":"object","additionalProperties":false,"required":["kind","custody","account"],"properties":{"kind":{"type":"string","enum":["BUY","SELL","ROTATE","WITHDRAW"],"description":"What the intent does."},"custody":{"type":"string","enum":["P","U","S","U+","A","C","L"],"description":"P paper, U own wallet, S smart account; U+, A, C and L refuse with their reason in this build."},"account":{"$ref":"#/components/schemas/ExecAddress"},"exposure":{"type":"string","maxLength":24,"description":"A ticker (NVDA) or exposure id (EQ:NVDA). Not used by WITHDRAW."},"instrument":{"$ref":"#/components/schemas/ExecAddress"},"rotateTo":{"type":"string","enum":["bstock","ondo","xstock"],"description":"ROTATE: the wrapper bought with the proceeds."},"amountUsd":{"type":"string","pattern":"^[0-9]{1,7}(\\.[0-9]{1,6})?$","description":"BUY: decimal USD of stablecoin spent."},"amountTokens":{"type":"string","pattern":"^[0-9]{1,78}$","description":"SELL, ROTATE, WITHDRAW: smallest units."},"amountAll":{"type":"boolean","description":"SELL, ROTATE, WITHDRAW: everything held."},"maxSlippagePercent":{"type":"string","pattern":"^[0-9]{1,2}(\\.[0-9]{1,2})?$","description":"Default 1. At most 50."},"maxPremiumBps":{"type":"string","pattern":"^[0-9]{1,5}(\\.[0-9]{1,2})?$"},"allowCaution":{"type":"boolean","description":"Accept a CAUTION Verdict (an entry needs this; an exit accepts it by confirming)."},"acknowledgeBlockPrice":{"type":"boolean","description":"SELL only: sell even at a BLOCK price after seeing the loss (exit-always). Never for automation."},"destination":{"$ref":"#/components/schemas/ExecAddress"},"deadlineSec":{"type":"integer","minimum":60,"maximum":86400},"clientIntentId":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,64}$","description":"Idempotency key, unique per account."},"agentId":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,64}$","description":"Required when an agent drafts."},"policyId":{"$ref":"#/components/schemas/ExecHash"}}},"ExecConfirmRequest":{"type":"object","additionalProperties":false,"required":["confirmToken"],"properties":{"confirmToken":{"type":"string","minLength":10,"maxLength":4096},"ownerSignature":{"type":"string","pattern":"^0x[0-9a-fA-F]{130}$","description":"EIP-712 ConfirmIntent{intentHash, preflightHash, envelopeHash, expiresAt} by the owner, domain \"SX Confirm\" v1, chain 56."},"ownerAddress":{"$ref":"#/components/schemas/ExecAddress"},"mode":{"type":"string","enum":["live","paper"],"default":"live","description":"paper: this call may only act on a paper (custody P) intent. MCP pins it to paper, so no agent reaches a live write."}}},"ExecNextRequest":{"type":"object","additionalProperties":false,"properties":{"mode":{"type":"string","enum":["live","paper"],"default":"live","description":"paper: this call may only act on a paper (custody P) intent. MCP pins it to paper, so no agent reaches a live write."}}},"ExecSubmitRequest":{"type":"object","additionalProperties":false,"required":["signedTransaction"],"properties":{"signedTransaction":{"type":"string","pattern":"^0x[0-9a-fA-F]{2,65536}$"},"stepIndex":{"type":"integer","minimum":0}}},"ExecMandate":{"type":"object","additionalProperties":false,"required":["account","owner","custody","kinds","exposures","issuers","sessions","agentIds","draftOnly","maxPerIntentUsdMicro","capPerPeriodUsdMicro","periodSeconds","maxPremiumBpsX100","allowCaution","validFrom","validUntil","nonce"],"properties":{"account":{"$ref":"#/components/schemas/ExecAddress"},"owner":{"$ref":"#/components/schemas/ExecAddress"},"custody":{"type":"string","enum":["U","S","U+","A","C","L"]},"kinds":{"type":"array","maxItems":4,"items":{"type":"string","enum":["BUY","SELL","ROTATE","WITHDRAW"]}},"exposures":{"type":"array","maxItems":200,"items":{"type":"string","maxLength":24}},"issuers":{"type":"array","maxItems":3,"items":{"type":"string","enum":["bstock","ondo","xstock"]}},"sessions":{"type":"array","maxItems":9,"items":{"type":"string","maxLength":32}},"agentIds":{"type":"array","maxItems":20,"items":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,64}$"}},"draftOnly":{"type":"boolean"},"maxPerIntentUsdMicro":{"$ref":"#/components/schemas/ExecUint"},"capPerPeriodUsdMicro":{"$ref":"#/components/schemas/ExecUint"},"periodSeconds":{"$ref":"#/components/schemas/ExecUint"},"maxPremiumBpsX100":{"type":"integer","minimum":0,"maximum":1000000},"allowCaution":{"type":"boolean"},"validFrom":{"$ref":"#/components/schemas/ExecUint"},"validUntil":{"$ref":"#/components/schemas/ExecUint"},"nonce":{"$ref":"#/components/schemas/ExecUint"}}},"ExecPolicyRequest":{"type":"object","additionalProperties":false,"required":["mandate","signature"],"properties":{"mandate":{"$ref":"#/components/schemas/ExecMandate"},"signature":{"type":"string","pattern":"^0x[0-9a-fA-F]{130}$"}}},"ExecPolicy":{"type":"object","additionalProperties":false,"required":["policyId","status","mandate","registeredAt","revokedAt"],"properties":{"policyId":{"$ref":"#/components/schemas/ExecHash"},"status":{"type":"string","enum":["REGISTERED","ALREADY_REGISTERED","ACTIVE","REVOKED"]},"mandate":{"$ref":"#/components/schemas/ExecMandate"},"registeredAt":{"type":["string","null"],"format":"date-time"},"revokedAt":{"type":["string","null"],"format":"date-time"}}},"ExecEnvelope":{"type":"object","additionalProperties":false,"required":["tokenIn","tokenOut","amountIn","minOut","minSharesOut","maxPremiumBps","worstDecision"],"properties":{"tokenIn":{"$ref":"#/components/schemas/ExecAddress"},"tokenOut":{"$ref":"#/components/schemas/ExecAddress"},"amountIn":{"$ref":"#/components/schemas/ExecUint"},"minOut":{"$ref":"#/components/schemas/ExecUint"},"minSharesOut":{"type":"string","description":"Shares, 18 decimals."},"maxPremiumBps":{"type":"string","description":"Basis points, 2 decimals."},"worstDecision":{"$ref":"#/components/schemas/ExecDecision"}}},"ExecFill":{"type":"object","additionalProperties":false,"required":["simulated","txHash","block","amountIn","amountOut","ratio","ratioSource","sharesIn","sharesOut","perShareUsd","gasUsed","gasFeeWei","vsEnvelope","at"],"properties":{"simulated":{"type":"boolean","description":"True for a paper fill (executed on a fork, never broadcast)."},"txHash":{"oneOf":[{"$ref":"#/components/schemas/ExecHash"},{"type":"null"}]},"block":{"type":["string","null"]},"amountIn":{"$ref":"#/components/schemas/ExecUint"},"amountOut":{"$ref":"#/components/schemas/ExecUint"},"ratio":{"type":["string","null"],"description":"Shares per token at the fill block, 18 decimals."},"ratioSource":{"type":["string","null"]},"sharesIn":{"type":["string","null"],"description":"Shares, 18 decimals."},"sharesOut":{"type":["string","null"],"description":"Shares, 18 decimals."},"perShareUsd":{"type":["string","null"],"description":"USD, 6 decimals. Buy rounds up, sell rounds down."},"gasUsed":{"type":["string","null"]},"gasFeeWei":{"type":["string","null"]},"vsEnvelope":{"type":"string","enum":["WITHIN","BELOW_MIN_OUT"]},"at":{"type":"string","format":"date-time"}}},"ExecLeg":{"type":"object","additionalProperties":false,"required":["index","kind","tokenIn","tokenOut","instrument","issuer","vendor","amountIn","spender","envelope","fill"],"properties":{"index":{"type":"integer"},"kind":{"type":"string","enum":["SWAP_BUY","SWAP_SELL","TRANSFER"]},"tokenIn":{"$ref":"#/components/schemas/ExecAddress"},"tokenOut":{"oneOf":[{"$ref":"#/components/schemas/ExecAddress"},{"type":"null"}]},"instrument":{"oneOf":[{"$ref":"#/components/schemas/ExecAddress"},{"type":"null"}]},"issuer":{"type":["string","null"]},"vendor":{"type":["string","null"]},"amountIn":{"$ref":"#/components/schemas/ExecUint"},"spender":{"oneOf":[{"$ref":"#/components/schemas/ExecAddress"},{"type":"null"}]},"envelope":{"oneOf":[{"$ref":"#/components/schemas/ExecEnvelope"},{"type":"null"}]},"fill":{"oneOf":[{"$ref":"#/components/schemas/ExecFill"},{"type":"null"}]}}},"ExecUnsignedTx":{"type":"object","additionalProperties":false,"description":"A legacy (type 0) BSC transaction, EIP-155 chain 56. Sign exactly this; anything else is refused.","required":["chainId","from","to","data","value","nonce","gas","gasPrice"],"properties":{"chainId":{"type":"integer","enum":[56]},"from":{"$ref":"#/components/schemas/ExecAddress"},"to":{"$ref":"#/components/schemas/ExecAddress"},"data":{"type":"string","pattern":"^0x[0-9a-fA-F]*$"},"value":{"$ref":"#/components/schemas/ExecUint"},"nonce":{"type":"integer","minimum":0},"gas":{"$ref":"#/components/schemas/ExecUint"},"gasPrice":{"$ref":"#/components/schemas/ExecUint"}}},"ExecSimulation":{"type":"object","additionalProperties":false,"required":["source","status","failReason","deltas","gasUsed","simHash","at"],"properties":{"source":{"type":"string","enum":["binance-simulate","anvil-fork","fork-eth-call"]},"status":{"type":"string","enum":["SUCCESS","FAILED"]},"failReason":{"type":["string","null"]},"deltas":{"type":"object","description":"The account's balance changes by lowercase token (0xeeee… is BNB), signed smallest units.","additionalProperties":{"$ref":"#/components/schemas/ExecSignedInt"}},"gasUsed":{"type":["string","null"]},"simHash":{"$ref":"#/components/schemas/ExecHash"},"at":{"type":"string","format":"date-time"}}},"ExecGas":{"type":"object","additionalProperties":false,"required":["apiGas","estimate","estimateSource","gasLimit","gasPrice","gasPriceSource"],"properties":{"apiGas":{"type":["string","null"],"description":"Binance's own figure (a placeholder; never sent alone)."},"estimate":{"type":["string","null"]},"estimateSource":{"type":"string","enum":["binance-gas-limit","rpc-estimateGas","fork-receipt","none"]},"gasLimit":{"type":"string","description":"max(API, estimate × 1.25)."},"gasPrice":{"type":"string"},"gasPriceSource":{"type":"string","enum":["swap-build","binance-gas-price","rpc-gasPrice","configured"]}}},"ExecStep":{"type":"object","additionalProperties":false,"required":["index","leg","kind","state","tx","validUntil","txHash","orderId","broadcastVia","simulation","gas","receipt","note"],"properties":{"index":{"type":"integer"},"leg":{"type":"integer"},"kind":{"type":"string","enum":["approve","swap","approve_reset","transfer","keeper_batch","paper_fill"]},"state":{"type":"string","enum":["PREPARED","SIGNED","BROADCAST","LANDED","REVERTED","DROPPED","SIMULATED_FILL","SUPERSEDED"]},"tx":{"oneOf":[{"$ref":"#/components/schemas/ExecUnsignedTx"},{"type":"null"}]},"validUntil":{"type":"string","format":"date-time"},"txHash":{"oneOf":[{"$ref":"#/components/schemas/ExecHash"},{"type":"null"}]},"orderId":{"type":["string","null"],"description":"Binance broadcast order id."},"broadcastVia":{"type":["string","null"],"enum":["binance","binance-mev","rpc",null]},"simulation":{"oneOf":[{"$ref":"#/components/schemas/ExecSimulation"},{"type":"null"}]},"gas":{"oneOf":[{"$ref":"#/components/schemas/ExecGas"},{"type":"null"}]},"receipt":{"oneOf":[{"type":"object","additionalProperties":false,"required":["block","status","gasUsed","effectiveGasPrice"],"properties":{"block":{"type":"string"},"status":{"type":"string","enum":["success","reverted"]},"gasUsed":{"type":"string"},"effectiveGasPrice":{"type":"string"}}},{"type":"null"}]},"note":{"type":["string","null"]}}},"ExecRefusal":{"type":"object","additionalProperties":false,"required":["code","message","at"],"properties":{"code":{"type":"string","description":"NOT_LISTED, NO_ROUTE, VERDICT_BLOCK, SIMULATION_FAILED, POLICY_DENIED, KYT_BLOCKED, ENVELOPE_BREACHED, INSUFFICIENT_BALANCE, CUSTODY_NOT_AVAILABLE, ..."},"message":{"type":"string"},"at":{"type":"string","format":"date-time"}}},"ExecPreflight":{"type":"object","additionalProperties":false,"required":["preflightHash","at","decision","reasons","verdictDigest","verdictSignatures","quoteHash","route","policy","envelope","envelopeHash","tokenExpiresAt","simulation","deferred","plannedSteps","sizeUsd","session","unread","notes"],"properties":{"preflightHash":{"$ref":"#/components/schemas/ExecHash"},"at":{"type":"string","format":"date-time"},"decision":{"$ref":"#/components/schemas/ExecDecision"},"reasons":{"type":"array","items":{"type":"string"}},"verdictDigest":{"oneOf":[{"$ref":"#/components/schemas/ExecHash"},{"type":"null"}]},"verdictSignatures":{"type":"integer","minimum":0},"quoteHash":{"$ref":"#/components/schemas/ExecHash"},"route":{"type":"string"},"policy":{"type":"object","additionalProperties":false,"required":["result","reason","policyId"],"properties":{"result":{"type":"string","enum":["allow","needs_user","deny"]},"reason":{"type":["string","null"]},"policyId":{"type":["string","null"]}}},"envelope":{"$ref":"#/components/schemas/ExecEnvelope"},"envelopeHash":{"allOf":[{"$ref":"#/components/schemas/ExecHash"}],"description":"keccak256(JCS(envelope)) the confirm token binds; the owner signs it in ConfirmIntent with intentHash, preflightHash and expiresAt (tokenExpiresAt in unix seconds)."},"tokenExpiresAt":{"type":["string","null"],"format":"date-time"},"simulation":{"oneOf":[{"$ref":"#/components/schemas/ExecSimulation"},{"type":"null"}]},"deferred":{"type":["string","null"]},"plannedSteps":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["kind","leg","simulationSource","simulationStatus"],"properties":{"kind":{"type":"string"},"leg":{"type":"integer"},"simulationSource":{"type":["string","null"]},"simulationStatus":{"type":["string","null"]}}}},"sizeUsd":{"type":"string","description":"USD, 6 decimals."},"session":{"type":"string"},"unread":{"type":"array","items":{"type":"string"}},"notes":{"type":"array","items":{"type":"string"}}}},"ExecIntent":{"type":"object","additionalProperties":false,"required":["intentId","intentHash","state","kind","custody","account","exposure","spec","legs","steps","preflight","confirmedAt","refusal","cleanup","createdAt","updatedAt"],"properties":{"intentId":{"type":"string","format":"uuid"},"intentHash":{"$ref":"#/components/schemas/ExecHash"},"state":{"type":"string","enum":["DRAFT","PREFLIGHTED","CONFIRMED","SIGNED","BROADCAST","LANDED","FAILED","EXPIRED"]},"kind":{"type":"string","enum":["BUY","SELL","ROTATE","WITHDRAW"]},"custody":{"type":"string","enum":["P","U","S","U+","A","C","L"]},"account":{"$ref":"#/components/schemas/ExecAddress"},"exposure":{"type":["string","null"]},"spec":{"type":"object","additionalProperties":false,"required":["instrument","rotateTo","amount","maxSlippageBps","maxPremiumBps","allowCaution","acknowledgeBlockPrice","destination","deadline","clientIntentId","agentId","policyId"],"properties":{"instrument":{"type":["string","null"]},"rotateTo":{"type":["string","null"]},"amount":{"type":"object","additionalProperties":false,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["usd","tokens","all"]},"value":{"type":["string","null"],"description":"usd: USD with 6 decimals; tokens: smallest units; all: null."}}},"maxSlippageBps":{"type":"string"},"maxPremiumBps":{"type":["string","null"]},"allowCaution":{"type":"boolean"},"acknowledgeBlockPrice":{"type":"boolean"},"destination":{"type":["string","null"]},"deadline":{"type":"string","format":"date-time"},"clientIntentId":{"type":["string","null"]},"agentId":{"type":["string","null"]},"policyId":{"type":["string","null"]}}},"legs":{"type":"array","items":{"$ref":"#/components/schemas/ExecLeg"}},"steps":{"type":"array","items":{"$ref":"#/components/schemas/ExecStep"}},"preflight":{"oneOf":[{"$ref":"#/components/schemas/ExecPreflight"},{"type":"null"}]},"confirmedAt":{"type":["string","null"],"format":"date-time"},"refusal":{"oneOf":[{"$ref":"#/components/schemas/ExecRefusal"},{"type":"null"}]},"cleanup":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"ExecNextAction":{"type":"object","additionalProperties":false,"required":["kind","reason","stepIndex","tx","validUntil","txHash","needs","tokenExpiresAt"],"description":"What happens next: preflight, confirm (with the token, and the owner's signature when needs says so), sign the tx then submit it, wait for the chain, prepare a fresh step, or none.","properties":{"kind":{"type":"string","enum":["preflight","confirm","sign","wait","prepare","none"]},"reason":{"type":["string","null"]},"stepIndex":{"type":["integer","null"]},"tx":{"oneOf":[{"$ref":"#/components/schemas/ExecUnsignedTx"},{"type":"null"}]},"validUntil":{"type":["string","null"],"format":"date-time"},"txHash":{"type":["string","null"]},"needs":{"type":["string","null"],"enum":["token","token+ownerSignature",null]},"tokenExpiresAt":{"type":["string","null"],"format":"date-time"}}},"ExecEligibility":{"type":"object","additionalProperties":false,"required":["liveEntry","paper","exit","exitWithoutBinance","reasons"],"properties":{"liveEntry":{"type":"boolean","description":"A new live position may be opened from this request."},"paper":{"type":"boolean"},"exit":{"type":"boolean","description":"Exits are closed only by sanctions or a legal hold (exit-always)."},"exitWithoutBinance":{"type":"boolean","description":"Education-only and Prohibited tiers: an exit may not call the Binance Web3 API."},"reasons":{"type":"array","items":{"type":"string"}}}},"ExecIntentView":{"type":"object","additionalProperties":false,"required":["intent","next","ledger","executionEligibility"],"properties":{"intent":{"$ref":"#/components/schemas/ExecIntent"},"next":{"$ref":"#/components/schemas/ExecNextAction"},"ledger":{"type":"object","additionalProperties":false,"required":["events","chainVerified"],"properties":{"events":{"type":"integer","minimum":0},"chainVerified":{"type":"boolean","description":"The intent's event stream hash chain recomputes."}}},"executionEligibility":{"$ref":"#/components/schemas/ExecEligibility"}}},"ExecPreflightView":{"type":"object","additionalProperties":false,"required":["intent","next","ledger","executionEligibility","confirmToken"],"properties":{"intent":{"$ref":"#/components/schemas/ExecIntent"},"next":{"$ref":"#/components/schemas/ExecNextAction"},"ledger":{"type":"object","additionalProperties":false,"required":["events","chainVerified"],"properties":{"events":{"type":"integer","minimum":0},"chainVerified":{"type":"boolean"}}},"executionEligibility":{"$ref":"#/components/schemas/ExecEligibility"},"confirmToken":{"type":["string","null"],"description":"ES256 compact token, single use, returned once. Null when the preflight refused."}}},"ExecCustody":{"type":"object","additionalProperties":false,"required":["modes","confirmTokenKey","cosigners"],"properties":{"modes":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["mode","available","detail","reason","requires"],"properties":{"mode":{"type":"string","enum":["P","U","S","U+","A","C","L"]},"available":{"type":"boolean"},"detail":{"type":["string","null"]},"reason":{"type":["string","null"]},"requires":{"type":["string","null"]}}}},"confirmTokenKey":{"type":"object","additionalProperties":true,"description":"The confirm-token verification key as a JWK (ES256)."},"cosigners":{"type":"object","additionalProperties":false,"required":["threshold","signers"],"properties":{"threshold":{"type":"integer","minimum":1},"signers":{"type":"array","items":{"type":"string"}}}}}},"RecordProof":{"type":"object","additionalProperties":false,"required":["recordHash","kind","at","correlationId","itemHash","leaf","payload","anchors","howToVerify","provenance"],"properties":{"recordHash":{"$ref":"#/components/schemas/Hex32"},"kind":{"type":"string"},"at":{"$ref":"#/components/schemas/Timestamp"},"correlationId":{"type":["string","null"]},"itemHash":{"$ref":"#/components/schemas/Hex32"},"leaf":{"$ref":"#/components/schemas/Hex32"},"payload":{"type":"string","description":"The record's canonical JSON payload as stored."},"anchors":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["batch","proof","verified"],"properties":{"batch":{"$ref":"#/components/schemas/AnchorBatch"},"proof":{"type":"array","items":{"$ref":"#/components/schemas/Hex32"}},"verified":{"type":"boolean"}}}},"howToVerify":{"type":"string"},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"PlanKept":{"type":"object","additionalProperties":false,"required":["plans","rates","unreadable","method","provenance"],"properties":{"plans":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["recordHash","planHash","template","timing","grade","missingRules"],"properties":{"recordHash":{"type":"string"},"planHash":{"type":"string"},"template":{"type":"string"},"timing":{"type":"string"},"grade":{"type":"string","enum":["PENDING","KEPT","REFUSED_WITH_REASON","MISSED"]},"missingRules":{"type":"array","items":{"type":"integer"}}}}},"rates":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["template","timing","settled","kept","refusedWithReason","missed","pending","keptOrRefusedPercent"],"properties":{"template":{"type":"string"},"timing":{"type":"string"},"settled":{"type":"integer"},"kept":{"type":"integer"},"refusedWithReason":{"type":"integer"},"missed":{"type":"integer"},"pending":{"type":"integer"},"keptOrRefusedPercent":{"oneOf":[{"$ref":"#/components/schemas/PercentValue"},{"type":"null"}]}}}},"unreadable":{"type":"integer"},"method":{"type":"string"},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"PercentValue":{"type":"string","description":"A percentage as a plain decimal, possibly negative, e.g. \"12.5\" or \"-3.25\".","pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"PercentInput":{"type":"string","description":"A percentage as a plain decimal with at most 4 decimals, 0 to 100.","pattern":"^[0-9]{1,3}(\\.[0-9]{1,4})?$"},"AutomationLocale":{"type":"string","enum":["en","ar","id"],"default":"en"},"AutomationFact":{"type":"object","additionalProperties":false,"required":["kind","value"],"properties":{"kind":{"type":"string","enum":["usd","ppm","pct","count","name","date"]},"value":{"type":"string","description":"usd: Usd; ppm: parts per million; pct: WAD fraction ×1e18 as an integer string; count: integer; name: text; date: ISO time."}}},"AutomationReason":{"type":"object","additionalProperties":false,"required":["code","text","facts","draftLocale"],"description":"A reason in plain words. Every number in `text` is one of `facts`, filled by the engine (numbers by reference).","properties":{"code":{"type":"string"},"text":{"type":"string"},"facts":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AutomationFact"}},"draftLocale":{"type":"boolean","description":"True for ar and id: machine-drafted wording awaiting native and legal review."}}},"TargetInput":{"type":"object","additionalProperties":false,"required":["exposure"],"properties":{"exposure":{"type":"string","minLength":1,"maxLength":24,"description":"A ticker (NVDA) or an exposure id (EQ:NVDA, ETF:SPY, CRYPTO:BTC, CASH:USDT)."},"weightPercent":{"$ref":"#/components/schemas/PercentInput"}}},"TargetWeight":{"type":"object","additionalProperties":false,"required":["exposure","weightPercent"],"properties":{"exposure":{"type":"string"},"weightPercent":{"$ref":"#/components/schemas/PercentValue"}}},"IntentDraftEnvelope":{"type":"object","additionalProperties":false,"required":["draft","executable","reason","draftHash"],"properties":{"draft":{"type":"object","additionalProperties":true,"description":"Exactly the body sx_draft_intent takes (kind, custody, account, exposure, instrument, amountUsd or amountTokens, limits, clientIntentId, policyId)."},"executable":{"type":"boolean","description":"False for legs the execution core does not take yet (crypto and stablecoin legs)."},"reason":{"type":["string","null"]},"draftHash":{"$ref":"#/components/schemas/Hex32"}}},"ThemeSummary":{"type":"object","additionalProperties":false,"required":["id","title","description","rule","members","membersHash","emptyBecause"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"rule":{"type":"string","description":"The rule in plain words."},"members":{"type":"integer","minimum":0},"membersHash":{"$ref":"#/components/schemas/Hex32"},"emptyBecause":{"type":["string","null"]}}},"ThemeTaxonomy":{"type":"object","additionalProperties":false,"required":["version","hash","universeSize","universeHash","evidence"],"properties":{"version":{"type":"string"},"hash":{"$ref":"#/components/schemas/Hex32"},"universeSize":{"type":"integer","minimum":0},"universeHash":{"$ref":"#/components/schemas/Hex32"},"evidence":{"type":"object","additionalProperties":false,"required":["dividendSteps","shariahPass","shariahDetail"],"properties":{"dividendSteps":{"type":"integer","minimum":0,"description":"Companies with a dividend share step observed on chain."},"shariahPass":{"type":"integer","minimum":0,"description":"Companies passing the AAOIFI screen in the EDGAR archive."},"shariahDetail":{"type":"string"}}}}},"ThemeList":{"type":"object","additionalProperties":false,"required":["taxonomy","themes","method","provenance"],"properties":{"taxonomy":{"$ref":"#/components/schemas/ThemeTaxonomy"},"themes":{"type":"array","items":{"$ref":"#/components/schemas/ThemeSummary"}},"method":{"type":"string"},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"ThemeMember":{"type":"object","additionalProperties":false,"required":["exposure","ticker","name","sector","fundClass","issuers"],"properties":{"exposure":{"type":"string"},"ticker":{"type":"string"},"name":{"$ref":"#/components/schemas/UntrustedText"},"sector":{"type":"string"},"fundClass":{"type":["string","null"]},"issuers":{"type":"array","items":{"$ref":"#/components/schemas/Issuer"}}}},"ThemeDetail":{"type":"object","additionalProperties":false,"required":["taxonomy","theme","members","provenance"],"properties":{"taxonomy":{"$ref":"#/components/schemas/ThemeTaxonomy"},"theme":{"$ref":"#/components/schemas/ThemeSummary"},"members":{"type":"array","items":{"$ref":"#/components/schemas/ThemeMember"}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"BasketInput":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":60},"themeId":{"type":"string","pattern":"^[a-z0-9-]{2,40}$"},"members":{"type":"array","minItems":1,"maxItems":50,"items":{"$ref":"#/components/schemas/TargetInput"}},"exclude":{"type":"array","maxItems":50,"items":{"type":"string","minLength":1,"maxLength":24}},"maxMemberPercent":{"$ref":"#/components/schemas/PercentInput"},"vetoHours":{"type":"integer","minimum":0,"maximum":168}}},"BasketComposeRequest":{"type":"object","additionalProperties":false,"required":["amountUsd"],"properties":{"name":{"type":"string","minLength":1,"maxLength":60},"themeId":{"type":"string","pattern":"^[a-z0-9-]{2,40}$"},"members":{"type":"array","minItems":1,"maxItems":50,"items":{"$ref":"#/components/schemas/TargetInput"}},"exclude":{"type":"array","maxItems":50,"items":{"type":"string","minLength":1,"maxLength":24}},"maxMemberPercent":{"$ref":"#/components/schemas/PercentInput"},"vetoHours":{"type":"integer","minimum":0,"maximum":168},"amountUsd":{"$ref":"#/components/schemas/UsdInput"},"quotes":{"type":"string","enum":["tape","live"],"default":"tape","description":"tape: recorded quotes, no Binance budget; live: the VenueRouter now (at most 10 members)."},"account":{"$ref":"#/components/schemas/Address"},"custody":{"type":"string","enum":["P","U","S","U+","A","C","L"],"default":"P"},"allowCaution":{"type":"boolean","default":false}}},"CompositionLegWire":{"type":"object","additionalProperties":false,"required":["exposure","weightPercent","usd","status","why","issuer","symbol","instrument","sharesExpected","perShareUsd","check","minimumUsd","quoteSource","observedAt"],"properties":{"exposure":{"type":"string"},"weightPercent":{"$ref":"#/components/schemas/PercentValue"},"usd":{"$ref":"#/components/schemas/Usd"},"status":{"type":"string","enum":["READY","READY_CAUTION","NEEDS_POOLING","BLOCKED","NO_ROUTE"]},"why":{"type":"string"},"issuer":{"oneOf":[{"$ref":"#/components/schemas/Issuer"},{"type":"null"}]},"symbol":{"type":["string","null"]},"instrument":{"oneOf":[{"$ref":"#/components/schemas/Address"},{"type":"null"}]},"sharesExpected":{"oneOf":[{"$ref":"#/components/schemas/SharesValue"},{"type":"null"}]},"perShareUsd":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"check":{"type":["string","null"],"enum":["GO","CAUTION","BLOCK",null]},"minimumUsd":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"quoteSource":{"type":"string","enum":["TAPE","LIVE"]},"observedAt":{"oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]}}},"BasketBenchmarkFact":{"type":"object","additionalProperties":false,"required":["value","state","source"],"properties":{"value":{"type":["string","boolean","null"]},"state":{"type":"string","enum":["VERIFIED","NOT_VERIFIED","NOT_PUBLISHED"]},"source":{"type":"string"}}},"BasketBenchmark":{"type":"object","additionalProperties":false,"required":["id","name","ownership","annualFeePercent","entryFeePercent","minimumUsd","rebalance","hours","personal","crossIssuer"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"ownership":{"$ref":"#/components/schemas/BasketBenchmarkFact"},"annualFeePercent":{"$ref":"#/components/schemas/BasketBenchmarkFact"},"entryFeePercent":{"$ref":"#/components/schemas/BasketBenchmarkFact"},"minimumUsd":{"$ref":"#/components/schemas/BasketBenchmarkFact"},"rebalance":{"$ref":"#/components/schemas/BasketBenchmarkFact"},"hours":{"$ref":"#/components/schemas/BasketBenchmarkFact"},"personal":{"$ref":"#/components/schemas/BasketBenchmarkFact"},"crossIssuer":{"$ref":"#/components/schemas/BasketBenchmarkFact"}}},"BasketComposition":{"type":"object","additionalProperties":false,"required":["basket","amountUsd","legs","readyUsd","poolingUsd","blockedUsd","fillsAtOnceFromUsd","issuers","compositionHash","anchorItemHash","recorded","buy","benchmarks","method","notVerified","provenance"],"properties":{"basket":{"type":"object","additionalProperties":false,"required":["spec","hash","members"],"properties":{"spec":{"type":"object","additionalProperties":true,"description":"The canonical recipe (sx.basket v1) the hash commits to."},"hash":{"$ref":"#/components/schemas/Hex32"},"members":{"type":"array","items":{"$ref":"#/components/schemas/TargetWeight"}}}},"amountUsd":{"$ref":"#/components/schemas/Usd"},"legs":{"type":"array","items":{"$ref":"#/components/schemas/CompositionLegWire"}},"readyUsd":{"$ref":"#/components/schemas/Usd"},"poolingUsd":{"$ref":"#/components/schemas/Usd"},"blockedUsd":{"$ref":"#/components/schemas/Usd"},"fillsAtOnceFromUsd":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"issuers":{"type":"array","items":{"$ref":"#/components/schemas/Issuer"}},"compositionHash":{"$ref":"#/components/schemas/Hex32"},"anchorItemHash":{"$ref":"#/components/schemas/Hex32"},"recorded":{"type":"boolean","description":"Whether the composition was written to the decision records for anchoring."},"buy":{"oneOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["drafts","pooled","skipped"],"properties":{"drafts":{"type":"array","items":{"$ref":"#/components/schemas/IntentDraftEnvelope"}},"pooled":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["exposure","usd"],"properties":{"exposure":{"type":"string"},"usd":{"$ref":"#/components/schemas/Usd"}}}},"skipped":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["exposure","usd","why"],"properties":{"exposure":{"type":"string"},"usd":{"$ref":"#/components/schemas/Usd"},"why":{"type":"string"}}}}}}]},"benchmarks":{"type":"array","items":{"$ref":"#/components/schemas/BasketBenchmark"}},"method":{"type":"string"},"notVerified":{"type":"array","items":{"type":"string"}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"BasketBacktestRequest":{"type":"object","additionalProperties":false,"required":["contributionUsd"],"properties":{"name":{"type":"string","minLength":1,"maxLength":60},"themeId":{"type":"string","pattern":"^[a-z0-9-]{2,40}$"},"members":{"type":"array","minItems":1,"maxItems":25,"items":{"$ref":"#/components/schemas/TargetInput"}},"exclude":{"type":"array","maxItems":50,"items":{"type":"string","minLength":1,"maxLength":24}},"maxMemberPercent":{"$ref":"#/components/schemas/PercentInput"},"contributionUsd":{"$ref":"#/components/schemas/UsdInput"},"cadence":{"type":"string","enum":["WEEKLY","MONTHLY"],"default":"WEEKLY"},"trials":{"type":"integer","minimum":1,"maximum":1000,"default":1,"description":"How many variants you tried before this one; the deflated Sharpe counts them."}}},"BacktestStrategy":{"type":"object","additionalProperties":false,"required":["strategy","note","contributedUsd","finalValueUsd","trades","buys","sells","sellUsd","costUsd","costDragPercent","turnoverPercentPerYear","minOrderRefusals","minOrderWasteUsd","parkingYieldUsd","avgCashPercent","weightRmsPercentPoints","barsOutsideBandPercent","trackingErrorPercent","volatilityPercent","maxDrawdownPercent"],"properties":{"strategy":{"type":"string"},"note":{"type":"string"},"contributedUsd":{"$ref":"#/components/schemas/Usd"},"finalValueUsd":{"$ref":"#/components/schemas/Usd"},"trades":{"type":"integer","minimum":0},"buys":{"type":"integer","minimum":0},"sells":{"type":"integer","minimum":0},"sellUsd":{"$ref":"#/components/schemas/Usd"},"costUsd":{"$ref":"#/components/schemas/Usd"},"costDragPercent":{"$ref":"#/components/schemas/PercentValue"},"turnoverPercentPerYear":{"$ref":"#/components/schemas/PercentValue"},"minOrderRefusals":{"type":"integer","minimum":0},"minOrderWasteUsd":{"$ref":"#/components/schemas/Usd"},"parkingYieldUsd":{"$ref":"#/components/schemas/Usd"},"avgCashPercent":{"$ref":"#/components/schemas/PercentValue"},"weightRmsPercentPoints":{"$ref":"#/components/schemas/PercentValue"},"barsOutsideBandPercent":{"$ref":"#/components/schemas/PercentValue"},"trackingErrorPercent":{"$ref":"#/components/schemas/PercentValue"},"volatilityPercent":{"$ref":"#/components/schemas/PercentValue"},"maxDrawdownPercent":{"$ref":"#/components/schemas/PercentValue"}}},"BacktestDisplay":{"type":"object","additionalProperties":false,"required":["show","reason","deflatedSharpe","testFrom","testTo","testReturnPercent","trials"],"properties":{"show":{"type":"boolean"},"reason":{"type":["string","null"],"enum":["TOO_SHORT","NOT_SIGNIFICANT",null]},"deflatedSharpe":{"type":"string"},"testFrom":{"oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]},"testTo":{"oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]},"testReturnPercent":{"oneOf":[{"$ref":"#/components/schemas/PercentValue"},{"type":"null"}]},"trials":{"type":"integer","minimum":1}}},"AutomationBacktest":{"type":"object","additionalProperties":false,"required":["from","to","bars","members","strategies","display","costModel","method","notVerified","provenance"],"properties":{"from":{"$ref":"#/components/schemas/Timestamp"},"to":{"$ref":"#/components/schemas/Timestamp"},"bars":{"type":"integer","minimum":0},"members":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["exposure","weightPercent","issuer","symbol","instrument","bars","firstBar"],"properties":{"exposure":{"type":"string"},"weightPercent":{"$ref":"#/components/schemas/PercentValue"},"issuer":{"oneOf":[{"$ref":"#/components/schemas/Issuer"},{"type":"null"}]},"symbol":{"type":["string","null"]},"instrument":{"oneOf":[{"$ref":"#/components/schemas/Address"},{"type":"null"}]},"bars":{"type":"integer","minimum":0},"firstBar":{"oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]}}}},"strategies":{"type":"array","items":{"$ref":"#/components/schemas/BacktestStrategy"}},"display":{"$ref":"#/components/schemas/BacktestDisplay"},"costModel":{"type":"object","additionalProperties":false,"required":["id","provenance","buckets","fixedUsd","minimumUsd"],"properties":{"id":{"type":"string"},"provenance":{"type":"string"},"buckets":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["upToUsd","buyBps","sellBps"],"properties":{"upToUsd":{"$ref":"#/components/schemas/Usd"},"buyBps":{"$ref":"#/components/schemas/Bps"},"sellBps":{"$ref":"#/components/schemas/Bps"}}}},"fixedUsd":{"$ref":"#/components/schemas/Usd"},"minimumUsd":{"$ref":"#/components/schemas/Usd"}}},"method":{"type":"string"},"notVerified":{"type":"array","items":{"type":"string"}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"AutopilotPlanInput":{"type":"object","additionalProperties":true,"description":"The plan as you write it (sx.autopilot); parsed with every default written in. See sx_preview_autopilot's examples.","properties":{"name":{"type":"string"},"account":{"$ref":"#/components/schemas/Address"},"custody":{"type":"string","enum":["P","U","S","U+","A","C","L"]},"targets":{"type":"array","items":{"$ref":"#/components/schemas/TargetInput"}},"contribution":{"type":"object","additionalProperties":true,"properties":{"amountUsd":{"$ref":"#/components/schemas/UsdInput"},"cadence":{"type":"string","enum":["WEEKLY","BIWEEKLY","MONTHLY","PAYDAY"]},"weekday":{"type":"integer","minimum":1,"maximum":7},"dayOfMonth":{"oneOf":[{"type":"integer","minimum":1,"maximum":28},{"type":"string","enum":["LAST_BUSINESS_DAY"]}]},"start":{"type":"string"}}},"ribaFree":{"type":"boolean"},"parking":{"type":"boolean"},"pauses":{"type":"array","items":{"type":"object","additionalProperties":true}},"goal":{"type":"object","additionalProperties":true}}},"HoldingInput":{"type":"object","additionalProperties":false,"required":["exposure","shares"],"properties":{"exposure":{"type":"string","minLength":1,"maxLength":24},"shares":{"$ref":"#/components/schemas/SharesValue"}}},"AutopilotPreviewRequest":{"type":"object","additionalProperties":false,"required":["plan"],"properties":{"plan":{"$ref":"#/components/schemas/AutopilotPlanInput"},"holdings":{"type":"array","maxItems":50,"items":{"$ref":"#/components/schemas/HoldingInput"}},"planCashUsd":{"$ref":"#/components/schemas/UsdInput"},"parkedUsd":{"$ref":"#/components/schemas/UsdInput"},"accrued":{"type":"array","maxItems":50,"items":{"type":"object","additionalProperties":false,"required":["exposure","usd"],"properties":{"exposure":{"type":"string"},"usd":{"$ref":"#/components/schemas/UsdInput"}}}},"locale":{"$ref":"#/components/schemas/AutomationLocale"}}},"AutopilotReplayRequest":{"type":"object","additionalProperties":false,"required":["plan"],"properties":{"plan":{"$ref":"#/components/schemas/AutopilotPlanInput"},"trials":{"type":"integer","minimum":1,"maximum":1000,"default":1}}},"AutopilotLeg":{"type":"object","additionalProperties":false,"required":["exposure","side","wantUsd","outcome","usd","reason","detail","funding","draft"],"properties":{"exposure":{"type":"string"},"side":{"type":"string","enum":["BUY","SELL"]},"wantUsd":{"$ref":"#/components/schemas/Usd"},"outcome":{"type":"string","enum":["RUN","ACCRUE","PARK"]},"usd":{"$ref":"#/components/schemas/Usd"},"reason":{"type":["string","null"]},"detail":{"type":["string","null"]},"funding":{"type":"string","enum":["PLAN_CASH","SELL_PROCEEDS"]},"draft":{"oneOf":[{"$ref":"#/components/schemas/IntentDraftEnvelope"},{"type":"null"}]}}},"AutopilotPreview":{"type":"object","additionalProperties":false,"required":["plan","run","schedule","goal","ramadanSuggestion","parkingVenue","mandate","facts","method","notVerified","provenance"],"properties":{"plan":{"type":"object","additionalProperties":false,"required":["spec","hash"],"properties":{"spec":{"type":"object","additionalProperties":true},"hash":{"$ref":"#/components/schemas/Hex32"}}},"run":{"type":"object","additionalProperties":false,"required":["runId","dueAt","paused","blocked","legs","holds","accruedAfter","freeCashAfterUsd","parking","reasons","valueBeforeUsd"],"properties":{"runId":{"$ref":"#/components/schemas/Hex32"},"dueAt":{"$ref":"#/components/schemas/Timestamp"},"paused":{"oneOf":[{"type":"object","additionalProperties":false,"required":["label","until"],"properties":{"label":{"type":"string"},"until":{"$ref":"#/components/schemas/Timestamp"}}},{"type":"null"}]},"blocked":{"oneOf":[{"type":"object","additionalProperties":false,"required":["reason","exposures"],"properties":{"reason":{"type":"string"},"exposures":{"type":"array","items":{"type":"string"}}}},{"type":"null"}]},"legs":{"type":"array","items":{"$ref":"#/components/schemas/AutopilotLeg"}},"holds":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["exposure","weightPercent","targetPercent","bandPercentPoints","hold"],"properties":{"exposure":{"type":"string"},"weightPercent":{"$ref":"#/components/schemas/PercentValue"},"targetPercent":{"$ref":"#/components/schemas/PercentValue"},"bandPercentPoints":{"$ref":"#/components/schemas/PercentValue"},"hold":{"type":["string","null"]}}}},"accruedAfter":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["exposure","usd"],"properties":{"exposure":{"type":"string"},"usd":{"$ref":"#/components/schemas/Usd"}}}},"freeCashAfterUsd":{"$ref":"#/components/schemas/Usd"},"parking":{"type":"object","additionalProperties":false,"required":["kind","usd","venue","reason"],"properties":{"kind":{"type":"string","enum":["NONE","DEPOSIT","REDEEM"]},"usd":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"venue":{"type":["string","null"]},"reason":{"type":"string"}}},"reasons":{"type":"array","items":{"$ref":"#/components/schemas/AutomationReason"}},"valueBeforeUsd":{"$ref":"#/components/schemas/Usd"}}},"schedule":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["at","amountUsd","pausedBy"],"properties":{"at":{"$ref":"#/components/schemas/Timestamp"},"amountUsd":{"$ref":"#/components/schemas/Usd"},"pausedBy":{"type":["string","null"]}}}},"goal":{"oneOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["name","haveUsd","goalUsd","perContributionUsd","eta","neededPerContributionUsd","onTrack","contributionsLeft","reason"],"properties":{"name":{"type":"string"},"haveUsd":{"$ref":"#/components/schemas/Usd"},"goalUsd":{"$ref":"#/components/schemas/Usd"},"perContributionUsd":{"$ref":"#/components/schemas/Usd"},"eta":{"oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]},"neededPerContributionUsd":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"onTrack":{"type":"boolean"},"contributionsLeft":{"type":["integer","null"]},"reason":{"$ref":"#/components/schemas/AutomationReason"}}}]},"ramadanSuggestion":{"type":"object","additionalProperties":false,"required":["hijriYear","from","to","basis","note"],"properties":{"hijriYear":{"type":"integer"},"from":{"$ref":"#/components/schemas/Timestamp"},"to":{"$ref":"#/components/schemas/Timestamp"},"basis":{"type":"string"},"note":{"type":"string"}}},"parkingVenue":{"oneOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["id","name","apyPercent"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"apyPercent":{"$ref":"#/components/schemas/PercentValue"}}}]},"mandate":{"type":["object","null"],"additionalProperties":true,"description":"The mandate fields this plan would need for a real custody mode (sx_register_policy), unsigned. Null for paper."},"facts":{"type":"object","additionalProperties":false,"required":["source","observedAt","exposures"],"properties":{"source":{"type":"string"},"observedAt":{"oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]},"exposures":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["exposure","issuer","check","perShareUsd","minimumUsd","session"],"properties":{"exposure":{"type":"string"},"issuer":{"oneOf":[{"$ref":"#/components/schemas/Issuer"},{"type":"null"}]},"check":{"type":["string","null"],"description":"The price check of the recorded quotes at about this size (GO, CAUTION, BLOCK, NO_QUOTE ...)."},"perShareUsd":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}],"description":"Median executable price per share of our recorded quotes; holdings are valued at it."},"minimumUsd":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"session":{"type":"string"}}}}}},"method":{"type":"string"},"notVerified":{"type":"array","items":{"type":"string"}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"AutopilotArmRequest":{"type":"object","additionalProperties":false,"required":["plan","custody"],"properties":{"plan":{"$ref":"#/components/schemas/AutopilotPlanInput"},"custody":{"type":"string","enum":["P","U","S","U+","A","C","L"],"description":"Must equal the plan's custody. P (paper) arms without a mandate."},"policyId":{"$ref":"#/components/schemas/Hex32"}}},"AutopilotArmed":{"type":"object","additionalProperties":false,"required":["planHash","custody","policyId","status","armedAt","nextRunAt","recordHash","recorded","notes"],"properties":{"planHash":{"$ref":"#/components/schemas/Hex32"},"custody":{"type":"string"},"policyId":{"oneOf":[{"$ref":"#/components/schemas/Hex32"},{"type":"null"}]},"status":{"type":"string","enum":["ARMED_PAPER","ARMED"]},"armedAt":{"$ref":"#/components/schemas/Timestamp"},"nextRunAt":{"oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]},"recordHash":{"$ref":"#/components/schemas/Hex32"},"recorded":{"type":"boolean"},"notes":{"type":"array","items":{"type":"string"}}}},"CalendarEventWire":{"type":"object","additionalProperties":false,"required":["eventId","kind","exposure","series","period","title","status","at","window","timing","end","revision","sources","history"],"properties":{"eventId":{"$ref":"#/components/schemas/Hex32"},"kind":{"type":"string","enum":["EARNINGS","DIVIDEND_STEP","ASSET_LIMITED","MACRO"]},"exposure":{"type":["string","null"]},"series":{"type":["string","null"]},"period":{"type":"string"},"title":{"$ref":"#/components/schemas/UntrustedText"},"status":{"type":"string","enum":["PROJECTED","CONFIRMED","OBSERVED"]},"at":{"$ref":"#/components/schemas/Timestamp"},"window":{"oneOf":[{"type":"object","additionalProperties":false,"required":["from","to"],"properties":{"from":{"$ref":"#/components/schemas/Timestamp"},"to":{"$ref":"#/components/schemas/Timestamp"}}},{"type":"null"}]},"timing":{"type":"string","enum":["BMO","AMC","DURING","UNKNOWN"]},"end":{"oneOf":[{"$ref":"#/components/schemas/Timestamp"},{"type":"null"}]},"revision":{"type":"integer","minimum":0},"sources":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["source","ref","observedAt"],"properties":{"source":{"type":"string"},"ref":{"type":"string"},"observedAt":{"$ref":"#/components/schemas/Timestamp"}}}},"history":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["revision","at","status","timing","changedAt","source"],"properties":{"revision":{"type":"integer"},"at":{"$ref":"#/components/schemas/Timestamp"},"status":{"type":"string"},"timing":{"type":"string"},"changedAt":{"$ref":"#/components/schemas/Timestamp"},"source":{"type":"string"}}}}}},"EarningsCalendar":{"type":"object","additionalProperties":false,"required":["events","sources","ics","method","notVerified","provenance"],"properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/CalendarEventWire"}},"sources":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["source","subject","ok","detail"],"properties":{"source":{"type":"string"},"subject":{"type":"string"},"ok":{"type":"boolean"},"detail":{"type":"string"}}}},"ics":{"type":["string","null"]},"method":{"type":"string"},"notVerified":{"type":"array","items":{"type":"string"}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"EarningsPlanRequest":{"type":"object","additionalProperties":false,"required":["ticker","template"],"properties":{"ticker":{"type":"string","pattern":"^[A-Za-z0-9.]{1,12}$"},"template":{"type":"string","enum":["TRIM_BEFORE","HEDGE_TO_STABLES","HOLD","BUY_DIP_IN_BAND","POSITION_AHEAD_FLATTEN_AFTER"]},"trimPercent":{"type":"string"},"daysBefore":{"type":"integer"},"buyUsd":{"type":"string"},"dipPercent":{"type":"string"},"floorPercent":{"type":"string"},"flatten":{"type":"string","enum":["ALL","SAME_USD"]},"onlyTiming":{"type":"string","enum":["BMO","AMC","ANY"]},"exitTiming":{"type":"string","enum":["NEXT_OPEN","SAME_EVENING"]},"holdDaysBefore":{"type":"integer"},"holdDaysAfter":{"type":"integer"},"locale":{"$ref":"#/components/schemas/AutomationLocale"}}},"EarningsPlan":{"type":"object","additionalProperties":false,"required":["planHash","event","template","params","program","programHash","stockRule","recordHash","readback","blackout","lock","ics","notVerified"],"properties":{"planHash":{"$ref":"#/components/schemas/Hex32"},"event":{"$ref":"#/components/schemas/CalendarEventWire"},"template":{"type":"string"},"params":{"type":"object","additionalProperties":true},"program":{"type":["object","null"],"additionalProperties":true,"description":"The stockrule/1 program, normalised. Null for HOLD."},"programHash":{"oneOf":[{"$ref":"#/components/schemas/Hex32"},{"type":"null"}]},"stockRule":{"type":["object","null"],"additionalProperties":true,"description":"The StockRule (stockrule/1) the strategy runtime arms for this plan under your grant; null for HOLD."},"recordHash":{"$ref":"#/components/schemas/Hex32"},"readback":{"type":"array","items":{"type":"string"}},"blackout":{"oneOf":[{"type":"object","additionalProperties":false,"required":["from","to","side"],"properties":{"from":{"$ref":"#/components/schemas/Timestamp"},"to":{"$ref":"#/components/schemas/Timestamp"},"side":{"type":"string"}}},{"type":"null"}]},"lock":{"type":"object","additionalProperties":false,"required":["from","until"],"properties":{"from":{"$ref":"#/components/schemas/Timestamp"},"until":{"$ref":"#/components/schemas/Timestamp"}}},"ics":{"type":"string"},"notVerified":{"type":"array","items":{"type":"string"}}}},"AllocatorRequest":{"type":"object","additionalProperties":false,"required":["equity","crypto","equityRiskPercent","targetVolPercent"],"properties":{"equity":{"type":"array","minItems":1,"maxItems":20,"items":{"$ref":"#/components/schemas/TargetInput"}},"crypto":{"type":"array","minItems":1,"maxItems":3,"items":{"$ref":"#/components/schemas/TargetInput"}},"equityRiskPercent":{"$ref":"#/components/schemas/PercentInput"},"targetVolPercent":{"$ref":"#/components/schemas/PercentInput"},"floor":{"type":"object","additionalProperties":false,"required":["floorUsd","valueUsd"],"properties":{"floorUsd":{"$ref":"#/components/schemas/UsdInput"},"valueUsd":{"$ref":"#/components/schemas/UsdInput"},"multiplier":{"type":"string","pattern":"^(10|[1-9])(\\.[0-9]{1,2})?$","default":"4"}}},"locale":{"$ref":"#/components/schemas/AutomationLocale"}}},"Allocation":{"type":"object","additionalProperties":false,"required":["estimate","riskyMix","sleeves","predictedVolPercent","riskShare","capBy","floor","targets","reasons","history","method","notVerified","provenance"],"properties":{"estimate":{"type":"object","additionalProperties":false,"required":["volEquityPercent","volCryptoPercent","volEquityLongPercent","volCryptoLongPercent","correlation","correlationLong","correlationUsed","observations","volRegime","corrRegime"],"properties":{"volEquityPercent":{"$ref":"#/components/schemas/PercentValue"},"volCryptoPercent":{"$ref":"#/components/schemas/PercentValue"},"volEquityLongPercent":{"$ref":"#/components/schemas/PercentValue"},"volCryptoLongPercent":{"$ref":"#/components/schemas/PercentValue"},"correlation":{"type":"string"},"correlationLong":{"type":"string"},"correlationUsed":{"type":"string"},"observations":{"type":"integer"},"volRegime":{"type":"string","enum":["CALM","NORMAL","STRESSED"]},"corrRegime":{"type":"string","enum":["LOW","MODERATE","HIGH"]}}},"riskyMix":{"type":"object","additionalProperties":false,"required":["equityPercent","cryptoPercent"],"properties":{"equityPercent":{"$ref":"#/components/schemas/PercentValue"},"cryptoPercent":{"$ref":"#/components/schemas/PercentValue"}}},"sleeves":{"type":"object","additionalProperties":false,"required":["equityPercent","cryptoPercent","stablesPercent"],"properties":{"equityPercent":{"$ref":"#/components/schemas/PercentValue"},"cryptoPercent":{"$ref":"#/components/schemas/PercentValue"},"stablesPercent":{"$ref":"#/components/schemas/PercentValue"}}},"predictedVolPercent":{"$ref":"#/components/schemas/PercentValue"},"riskShare":{"type":"object","additionalProperties":false,"required":["equityPercent","cryptoPercent"],"properties":{"equityPercent":{"$ref":"#/components/schemas/PercentValue"},"cryptoPercent":{"$ref":"#/components/schemas/PercentValue"}}},"capBy":{"type":"string","enum":["VOL_TARGET","NO_LEVERAGE","FLOOR"]},"floor":{"oneOf":[{"type":"object","additionalProperties":false,"required":["floorUsd","riskyUsd","safeUsd","gapToBreachPercent","breached"],"properties":{"floorUsd":{"$ref":"#/components/schemas/Usd"},"riskyUsd":{"$ref":"#/components/schemas/Usd"},"safeUsd":{"$ref":"#/components/schemas/Usd"},"gapToBreachPercent":{"$ref":"#/components/schemas/PercentValue"},"breached":{"type":"boolean"}}},{"type":"null"}]},"targets":{"type":"array","items":{"$ref":"#/components/schemas/TargetWeight"}},"reasons":{"type":"array","items":{"$ref":"#/components/schemas/AutomationReason"}},"history":{"type":"object","additionalProperties":false,"required":["from","to","observations","instruments"],"properties":{"from":{"$ref":"#/components/schemas/Timestamp"},"to":{"$ref":"#/components/schemas/Timestamp"},"observations":{"type":"integer"},"instruments":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["exposure","symbol","instrument","bars"],"properties":{"exposure":{"type":"string"},"symbol":{"type":"string"},"instrument":{"$ref":"#/components/schemas/Address"},"bars":{"type":"integer"}}}}}},"method":{"type":"string"},"notVerified":{"type":"array","items":{"type":"string"}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"AllocatorBacktest":{"type":"object","additionalProperties":false,"required":["from","to","months","strategies","forecast","perAsset","display","method","notVerified","provenance"],"properties":{"from":{"$ref":"#/components/schemas/Timestamp"},"to":{"$ref":"#/components/schemas/Timestamp"},"months":{"type":"integer"},"strategies":{"type":"array","items":{"$ref":"#/components/schemas/BacktestStrategy"}},"forecast":{"type":"object","additionalProperties":false,"required":["periods","realizedVolPercent","targetVolPercent","bias","qlike","withinBandPercent"],"properties":{"periods":{"type":"integer"},"realizedVolPercent":{"$ref":"#/components/schemas/PercentValue"},"targetVolPercent":{"$ref":"#/components/schemas/PercentValue"},"bias":{"type":"string","description":"Realised over predicted volatility; 1.00 is perfect."},"qlike":{"type":"string"},"withinBandPercent":{"$ref":"#/components/schemas/PercentValue"}}},"perAsset":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["exposure","contributionPercent"],"properties":{"exposure":{"type":"string"},"contributionPercent":{"$ref":"#/components/schemas/PercentValue"}}}},"display":{"$ref":"#/components/schemas/BacktestDisplay"},"method":{"type":"string"},"notVerified":{"type":"array","items":{"type":"string"}},"provenance":{"$ref":"#/components/schemas/Provenance"}}},"ParkingVenues":{"type":"object","additionalProperties":false,"required":["chosen","bestInstantApyPercent","bestBelowFloorApyPercent","maxDepositUsd","assessed","policy","reason","method","provenance"],"properties":{"chosen":{"oneOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["id","name","protocolId","apyPercent","tvlUsd"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"protocolId":{"type":"string"},"apyPercent":{"$ref":"#/components/schemas/PercentValue"},"tvlUsd":{"$ref":"#/components/schemas/Usd"}}}]},"bestInstantApyPercent":{"oneOf":[{"$ref":"#/components/schemas/PercentValue"},{"type":"null"}]},"bestBelowFloorApyPercent":{"oneOf":[{"$ref":"#/components/schemas/PercentValue"},{"type":"null"}]},"maxDepositUsd":{"$ref":"#/components/schemas/Usd"},"assessed":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["investmentId","name","protocolId","apyPercent","apyType","tvlUsd","redeemDelayDays","eligible","failed"],"properties":{"investmentId":{"type":"string"},"name":{"type":"string"},"protocolId":{"type":"string"},"apyPercent":{"$ref":"#/components/schemas/PercentValue"},"apyType":{"type":"string"},"tvlUsd":{"oneOf":[{"$ref":"#/components/schemas/Usd"},{"type":"null"}]},"redeemDelayDays":{"type":["array","null"],"items":{"type":"string"}},"eligible":{"type":"boolean"},"failed":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["check","detail"],"properties":{"check":{"type":"string"},"detail":{"type":"string"}}}}}}},"policy":{"type":"object","additionalProperties":false,"required":["minTvlUsd","maxApyPercent","maxShareOfTvlPercent"],"properties":{"minTvlUsd":{"$ref":"#/components/schemas/Usd"},"maxApyPercent":{"$ref":"#/components/schemas/PercentValue"},"maxShareOfTvlPercent":{"$ref":"#/components/schemas/PercentValue"}}},"reason":{"type":"string"},"method":{"type":"string"},"provenance":{"$ref":"#/components/schemas/Provenance"}}}}}}