{"version":1,"x402Version":2,"resources":["https://x402.presenceoperations.com/services/execution-cost","https://x402.presenceoperations.com/services/carry-cost","https://x402.presenceoperations.com/services/liquidity-risk","https://x402.presenceoperations.com/services/funding-history","https://x402.presenceoperations.com/services/spot-basis","https://x402.presenceoperations.com/v1/base-account-state"],"services":[{"x402Version":2,"scheme":"exact","serviceId":"execution-cost-v1","version":"1.0.0","resource":"/services/execution-cost","endpoint":"https://x402.presenceoperations.com/services/execution-cost","method":"GET","description":"What it would cost to execute a given notional in a given market right now: size-weighted fill price, slippage from the touch in basis points, and whether the visible book can absorb the size at all.","categories":["transaction-simulation","market-data-transformation","execution-analysis"],"network":"eip155:8453","chainId":8453,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x51edd63F074EaB0b1AB94c7BCf8b1e3aD43F1D2f","price":{"amountMinorUnits":"4000","currency":"USDC","decimals":6,"amountDecimal":"0.004"},"input":[{"name":"market","in":"query","required":true,"type":"string","pattern":"^[A-Z0-9]{1,16}-PERP$","minimum":null,"maximum":null,"allowedValues":null,"defaultValue":null,"rejectionCode":"MARKET_UNSUPPORTED","missingCode":"MARKET_REQUIRED","description":"the perpetual market to price, upper-cased before matching, for example BTC-PERP"},{"name":"notional","in":"query","required":true,"type":"number","pattern":null,"minimum":1,"maximum":100000000,"allowedValues":null,"defaultValue":null,"rejectionCode":"NOTIONAL_OUT_OF_RANGE","missingCode":"NOTIONAL_INVALID","description":"the size to price, in quote currency, bounded so one paid call cannot become an unbounded read of the venue"},{"name":"side","in":"query","required":false,"type":"string","pattern":null,"minimum":null,"maximum":null,"allowedValues":["BUY","SELL"],"defaultValue":"BUY","rejectionCode":"SIDE_UNRECOGNISED","missingCode":null,"description":"which side of the book to walk; omitted means BUY, and anything outside BUY or SELL is refused rather than answered as the default, so a misspelled side is never charged for"}],"output":{"mimeType":"application/json","fields":[{"name":"market","type":"string","nullable":false,"description":"the market the answer is about"},{"name":"side","type":"string","nullable":false,"description":"the side of the book that was walked"},{"name":"requestedNotional","type":"number","nullable":false,"description":"the size that was asked about"},{"name":"absorbable","type":"boolean","nullable":false,"description":"whether the visible book can absorb that size at all; false is the answer buyers are paying for"},{"name":"touchPrice","type":"string","nullable":true,"description":"best price on the walked side, null when the book is empty"},{"name":"averageFillPrice","type":"string","nullable":true,"description":"size-weighted fill price, null when the size cannot be filled rather than extrapolated past the book"},{"name":"slippageBasisPoints","type":"number","nullable":true,"description":"distance from the touch to the average fill, null for the same reason"},{"name":"filledNotional","type":"number","nullable":false,"description":"how much of the requested size the visible book covers"},{"name":"bookObservedAt","type":"string","nullable":false,"description":"when the venue observed the book, from the venue rather than this process's clock"},{"name":"levelsConsidered","type":"number","nullable":false,"description":"how many price levels the walk had available"},{"name":"detail","type":"string","nullable":false,"description":"the same answer in a sentence"}]},"terms":{"deliverable":"ANALYSIS_ONLY","custody":"NONE","actsFor":"NOBODY","beneficiary":"OWN_ACCOUNT","revenueClass":"agent_commerce","paymentTiming":"AUTHORIZED_BEFORE_SERVICE","refunds":"NONE","authority":["SYSTEM_CONSTITUTION.md#30","SYSTEM_CONSTITUTION.md#36"],"statements":["This service returns analysis. It never takes an asset, holds a balance, or executes anything.","It acts for nobody: the answer describes a public order book, not a position, an account, or an instruction.","Payment is authorised per call and settled by whoever submits the transfer, so nothing of the buyer's is ever held here.","A call that cannot be answered is refused before its payment is submitted, which is why there is nothing to refund."]},"identity":{"standard":"ERC-8004","status":"UNREGISTERED","agentId":null,"chainId":null,"required":false,"caveats":[]}},{"x402Version":2,"scheme":"exact","serviceId":"carry-cost-v1","version":"1.0.0","resource":"/services/carry-cost","endpoint":"https://x402.presenceoperations.com/services/carry-cost","method":"GET","description":"What it costs to hold a perpetual position: the venue's current hourly funding signed for your side, projected over your horizon in your own units, with the mark-to-oracle basis, open interest, and the assumption behind the projection stated rather than implied.","categories":["market-data","funding-rates","risk-analysis"],"network":"eip155:8453","chainId":8453,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x51edd63F074EaB0b1AB94c7BCf8b1e3aD43F1D2f","price":{"amountMinorUnits":"10000","currency":"USDC","decimals":6,"amountDecimal":"0.01"},"input":[{"name":"market","in":"query","required":true,"type":"string","pattern":"^[A-Z0-9]{1,16}-PERP$","minimum":null,"maximum":null,"allowedValues":null,"defaultValue":null,"rejectionCode":"MARKET_UNSUPPORTED","missingCode":"MARKET_REQUIRED","description":"the perpetual market to price the carry of, upper-cased before matching, for example BTC-PERP"},{"name":"notional","in":"query","required":true,"type":"number","pattern":null,"minimum":1,"maximum":100000000,"allowedValues":null,"defaultValue":null,"rejectionCode":"NOTIONAL_OUT_OF_RANGE","missingCode":"NOTIONAL_INVALID","description":"the position size to price the funding on, in quote currency"},{"name":"side","in":"query","required":false,"type":"string","pattern":null,"minimum":null,"maximum":null,"allowedValues":["LONG","SHORT"],"defaultValue":"LONG","rejectionCode":"SIDE_UNRECOGNISED","missingCode":"SIDE_UNRECOGNISED","description":"which side of the funding you are on; the two answers have opposite signs, so anything outside LONG or SHORT is refused rather than read as the default"},{"name":"hours","in":"query","required":false,"type":"number","pattern":null,"minimum":1,"maximum":720,"allowedValues":null,"defaultValue":"8","rejectionCode":"HOURS_OUT_OF_RANGE","missingCode":"HOURS_INVALID","description":"the holding horizon to project over; bounded because funding resets hourly and a projection past a month is a number with the shape of an answer and none of the content"}],"output":{"mimeType":"application/json","fields":[{"name":"market","type":"string","nullable":false,"description":"the market the answer is about"},{"name":"side","type":"string","nullable":false,"description":"the side of the funding the answer is signed for"},{"name":"notional","type":"number","nullable":false,"description":"the position size that was asked about"},{"name":"hours","type":"number","nullable":false,"description":"the horizon the projection covers"},{"name":"hourlyFundingRate","type":"string","nullable":false,"description":"as the venue quotes it: a fraction of notional per hour, positive means longs pay"},{"name":"fundingPerHour","type":"string","nullable":false,"description":"signed for your side; negative is a cost to you, positive is income"},{"name":"projectedFundingOverHorizon","type":"string","nullable":false,"description":"the same figure over the requested horizon at the observed rate"},{"name":"annualisedRateBasisPoints","type":"number","nullable":false,"description":"the rate annualised, signed for your side, for comparison against any other yield"},{"name":"direction","type":"string","nullable":false,"description":"BUYER_PAYS, BUYER_RECEIVES or FLAT; the sign stated in words so it cannot be read backwards"},{"name":"markPrice","type":"string","nullable":false,"description":"the venue mark at the moment observed"},{"name":"oraclePrice","type":"string","nullable":false,"description":"the venue oracle at the moment observed"},{"name":"basisBasisPoints","type":"number","nullable":false,"description":"mark against oracle; persistent divergence is what funding exists to close"},{"name":"openInterest","type":"string","nullable":false,"description":"open interest in the market, as a crowding signal"},{"name":"observedAt","type":"string","nullable":false,"description":"when the venue context this answer rests on was read"},{"name":"assumption","type":"string","nullable":false,"description":"stated on every response: funding resets hourly, so the horizon figure assumes a rate that will change; this is the caveat buyers are paying to have made explicit"},{"name":"detail","type":"string","nullable":false,"description":"the answer in one sentence, in the buyer's own units"}]},"terms":{"deliverable":"ANALYSIS_ONLY","custody":"NONE","actsFor":"NOBODY","beneficiary":"OWN_ACCOUNT","revenueClass":"agent_commerce","paymentTiming":"AUTHORIZED_BEFORE_SERVICE","refunds":"NONE","authority":["SYSTEM_CONSTITUTION.md#30","SYSTEM_CONSTITUTION.md#36"],"statements":["This service returns analysis. It never takes an asset, holds a balance, or executes anything.","It acts for nobody: the answer describes a public order book, not a position, an account, or an instruction.","Payment is authorised per call and settled by whoever submits the transfer, so nothing of the buyer's is ever held here.","A call that cannot be answered is refused before its payment is submitted, which is why there is nothing to refund."]},"identity":{"standard":"ERC-8004","status":"UNREGISTERED","agentId":null,"chainId":null,"required":false,"caveats":[]}},{"x402Version":2,"scheme":"exact","serviceId":"liquidity-risk-v1","version":"1.0.0","resource":"/services/liquidity-risk","endpoint":"https://x402.presenceoperations.com/services/liquidity-risk","method":"GET","description":"A liquidity-risk profile of a perpetual market, walked from the visible book: absorbable notional at four slippage tolerances on both sides, spread, book imbalance, top-of-book concentration, open interest and day volume — with the visible book's limits stated on every response rather than implied.","categories":["risk-analysis","market-data","liquidity"],"network":"eip155:8453","chainId":8453,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x51edd63F074EaB0b1AB94c7BCf8b1e3aD43F1D2f","price":{"amountMinorUnits":"15000","currency":"USDC","decimals":6,"amountDecimal":"0.015"},"input":[{"name":"market","in":"query","required":true,"type":"string","pattern":"^[A-Z0-9]{1,16}-PERP$","minimum":null,"maximum":null,"allowedValues":null,"defaultValue":null,"rejectionCode":"MARKET_UNSUPPORTED","missingCode":"MARKET_REQUIRED","description":"the perpetual market to profile, upper-cased before matching, for example BTC-PERP"}],"output":{"mimeType":"application/json","fields":[{"name":"market","type":"string","nullable":false,"description":"the market the profile is of"},{"name":"midPrice","type":"string","nullable":false,"description":"mid of best bid and best ask at the snapshot"},{"name":"spreadBasisPoints","type":"number","nullable":false,"description":"bid-ask spread in basis points of mid"},{"name":"depth","type":"array","nullable":false,"description":"absorbable notional on each side within 10, 25, 50 and 100 bp of mid, walked from the visible levels"},{"name":"imbalanceBasisPoints","type":"number","nullable":false,"description":"bid share of visible notional at the widest tolerance; 5000 is balanced"},{"name":"topLevelConcentrationBidBasisPoints","type":"number","nullable":false,"description":"share of bid-side depth sitting on the single best level"},{"name":"topLevelConcentrationAskBasisPoints","type":"number","nullable":false,"description":"share of ask-side depth sitting on the single best level"},{"name":"levelsVisible","type":"object","nullable":false,"description":"how many levels each side of the snapshot showed"},{"name":"openInterest","type":"string","nullable":false,"description":"open interest, for judging whether the visible book is the market or a sliver of it"},{"name":"dayNotionalVolume","type":"string","nullable":false,"description":"day traded notional, same purpose"},{"name":"bookObservedAt","type":"string","nullable":false,"description":"when the snapshot was taken"},{"name":"caveat","type":"string","nullable":false,"description":"stated on every response: the visible book is a lower bound on liquidity and an unreliable one — depth can be pulled when tested and hidden flow never appears in it"},{"name":"detail","type":"string","nullable":false,"description":"the profile in one sentence"}]},"terms":{"deliverable":"ANALYSIS_ONLY","custody":"NONE","actsFor":"NOBODY","beneficiary":"OWN_ACCOUNT","revenueClass":"agent_commerce","paymentTiming":"AUTHORIZED_BEFORE_SERVICE","refunds":"NONE","authority":["SYSTEM_CONSTITUTION.md#30","SYSTEM_CONSTITUTION.md#36"],"statements":["This service returns analysis. It never takes an asset, holds a balance, or executes anything.","It acts for nobody: the answer describes a public order book, not a position, an account, or an instruction.","Payment is authorised per call and settled by whoever submits the transfer, so nothing of the buyer's is ever held here.","A call that cannot be answered is refused before its payment is submitted, which is why there is nothing to refund."]},"identity":{"standard":"ERC-8004","status":"UNREGISTERED","agentId":null,"chainId":null,"required":false,"caveats":[]}},{"x402Version":2,"scheme":"exact","serviceId":"funding-history-v1","version":"1.0.0","resource":"/services/funding-history","endpoint":"https://x402.presenceoperations.com/services/funding-history","method":"GET","description":"What funding actually did on a perpetual market: the realised hourly resolutions summed over your window in basis points, the realised average and its annualised rate, and the venue's current rate beside it so you can see whether funding is rich or thin against its own history — with the sign convention and the history-is-not-a-forecast caveat stated on every response.","categories":["market-data","funding-rates","risk-analysis"],"network":"eip155:8453","chainId":8453,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x51edd63F074EaB0b1AB94c7BCf8b1e3aD43F1D2f","price":{"amountMinorUnits":"10000","currency":"USDC","decimals":6,"amountDecimal":"0.01"},"input":[{"name":"market","in":"query","required":true,"type":"string","pattern":"^[A-Z0-9]{1,16}-PERP$","minimum":null,"maximum":null,"allowedValues":null,"defaultValue":null,"rejectionCode":"MARKET_UNSUPPORTED","missingCode":"MARKET_REQUIRED","description":"the perpetual market whose funding history to summarise, upper-cased before matching, for example BTC-PERP"},{"name":"hours","in":"query","required":false,"type":"number","pattern":null,"minimum":1,"maximum":720,"allowedValues":null,"defaultValue":"24","rejectionCode":"HOURS_OUT_OF_RANGE","missingCode":"HOURS_INVALID","description":"the trailing window to sum realised funding over; bounded at a month because beyond that this is an archive query rather than a market read"}],"output":{"mimeType":"application/json","fields":[{"name":"market","type":"string","nullable":false,"description":"the market the answer is about"},{"name":"windowHours","type":"number","nullable":false,"description":"the trailing window that was asked for"},{"name":"hoursObserved","type":"number","nullable":false,"description":"the hourly resolutions the venue actually returned inside the window"},{"name":"realisedFundingBasisPoints","type":"number","nullable":false,"description":"sum of the hourly rates over the window, in basis points of notional; positive means longs paid"},{"name":"averageHourlyRateBasisPoints","type":"number","nullable":false,"description":"the realised total divided by the hours observed, in basis points per hour"},{"name":"annualisedRealisedRateBasisPoints","type":"number","nullable":false,"description":"the realised average annualised, for comparison against any other yield"},{"name":"currentHourlyRateBasisPoints","type":"number","nullable":false,"description":"the venue's current hourly rate in basis points, same sign convention"},{"name":"currentVersusRealisedBasisPoints","type":"number","nullable":false,"description":"current rate less the realised average; positive means funding is rich to its own history"},{"name":"markPrice","type":"string","nullable":false,"description":"the venue mark at the moment observed"},{"name":"oraclePrice","type":"string","nullable":false,"description":"the venue oracle at the moment observed"},{"name":"openInterest","type":"string","nullable":false,"description":"open interest in the market, as a crowding signal"},{"name":"observedAt","type":"string","nullable":false,"description":"when the venue context this answer rests on was read"},{"name":"assumption","type":"string","nullable":false,"description":"stated on every response: the sign convention, and that realised history implies nothing about the next hour — this is the caveat buyers are paying to have made explicit"},{"name":"detail","type":"string","nullable":false,"description":"the answer in one sentence"}]},"terms":{"deliverable":"ANALYSIS_ONLY","custody":"NONE","actsFor":"NOBODY","beneficiary":"OWN_ACCOUNT","revenueClass":"agent_commerce","paymentTiming":"AUTHORIZED_BEFORE_SERVICE","refunds":"NONE","authority":["SYSTEM_CONSTITUTION.md#30","SYSTEM_CONSTITUTION.md#36"],"statements":["This service returns analysis. It never takes an asset, holds a balance, or executes anything.","It acts for nobody: the answer describes a public order book, not a position, an account, or an instruction.","Payment is authorised per call and settled by whoever submits the transfer, so nothing of the buyer's is ever held here.","A call that cannot be answered is refused before its payment is submitted, which is why there is nothing to refund."]},"identity":{"standard":"ERC-8004","status":"UNREGISTERED","agentId":null,"chainId":null,"required":false,"caveats":[]}},{"x402Version":2,"scheme":"exact","serviceId":"spot-basis-v1","version":"1.0.0","resource":"/services/spot-basis","endpoint":"https://x402.presenceoperations.com/services/spot-basis","method":"GET","description":"Where a perpetual trades against its own spot market right now: the venue's matching USDC spot pair resolved by name, perp-to-spot basis and perp-to-oracle divergence in basis points, the current funding rate annualised beside them, and both legs' volumes — with the caveat that a quoted basis is two non-atomic snapshots and not an executable profit.","categories":["market-data","basis","risk-analysis"],"network":"eip155:8453","chainId":8453,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x51edd63F074EaB0b1AB94c7BCf8b1e3aD43F1D2f","price":{"amountMinorUnits":"10000","currency":"USDC","decimals":6,"amountDecimal":"0.01"},"input":[{"name":"market","in":"query","required":true,"type":"string","pattern":"^[A-Z0-9]{1,16}-PERP$","minimum":null,"maximum":null,"allowedValues":null,"defaultValue":null,"rejectionCode":"MARKET_UNSUPPORTED","missingCode":"MARKET_REQUIRED","description":"the perpetual market to measure against its own spot pair, upper-cased before matching, for example BTC-PERP"}],"output":{"mimeType":"application/json","fields":[{"name":"market","type":"string","nullable":false,"description":"the perpetual market the answer is about"},{"name":"coin","type":"string","nullable":false,"description":"the base coin the spot pair was resolved for"},{"name":"spotPair","type":"string","nullable":false,"description":"the venue's own USDC spot pair the basis is measured against, resolved rather than assumed"},{"name":"perpMarkPrice","type":"string","nullable":false,"description":"the perpetual mark at the moment observed"},{"name":"perpMidPrice","type":"string","nullable":false,"description":"the perpetual mid at the moment observed"},{"name":"oraclePrice","type":"string","nullable":false,"description":"the venue oracle for the perpetual"},{"name":"spotMidPrice","type":"string","nullable":false,"description":"the spot pair's mid at the moment observed"},{"name":"spotMarkPrice","type":"string","nullable":false,"description":"the spot pair's mark at the moment observed"},{"name":"basisBasisPoints","type":"number","nullable":false,"description":"perp mark against spot mid, in basis points; positive means the perp trades rich to spot"},{"name":"markToOracleBasisPoints","type":"number","nullable":false,"description":"perp mark against the venue oracle, in basis points"},{"name":"hourlyFundingRate","type":"string","nullable":false,"description":"as the venue quotes it: a fraction of notional per hour, positive means longs pay"},{"name":"annualisedFundingBasisPoints","type":"number","nullable":false,"description":"the current funding rate annualised, beside the basis because they are two halves of one trade"},{"name":"direction","type":"string","nullable":false,"description":"PERP_RICH, PERP_CHEAP or FLAT; the sign stated in words so it cannot be read backwards"},{"name":"openInterest","type":"string","nullable":false,"description":"open interest in the perpetual, as a crowding signal"},{"name":"perpDayNotionalVolume","type":"string","nullable":false,"description":"day traded notional on the perpetual leg"},{"name":"spotDayNotionalVolume","type":"string","nullable":false,"description":"day traded notional on the spot leg, for judging whether the hedge side is liquid"},{"name":"observedAt","type":"string","nullable":false,"description":"when the venue context this answer rests on was read"},{"name":"caveat","type":"string","nullable":false,"description":"stated on every response: the two snapshots are not atomic and a quoted basis is not an executable profit"},{"name":"detail","type":"string","nullable":false,"description":"the answer in one sentence"}]},"terms":{"deliverable":"ANALYSIS_ONLY","custody":"NONE","actsFor":"NOBODY","beneficiary":"OWN_ACCOUNT","revenueClass":"agent_commerce","paymentTiming":"AUTHORIZED_BEFORE_SERVICE","refunds":"NONE","authority":["SYSTEM_CONSTITUTION.md#30","SYSTEM_CONSTITUTION.md#36"],"statements":["This service returns analysis. It never takes an asset, holds a balance, or executes anything.","It acts for nobody: the answer describes a public order book, not a position, an account, or an instruction.","Payment is authorised per call and settled by whoever submits the transfer, so nothing of the buyer's is ever held here.","A call that cannot be answered is refused before its payment is submitted, which is why there is nothing to refund."]},"identity":{"standard":"ERC-8004","status":"UNREGISTERED","agentId":null,"chainId":null,"required":false,"caveats":[]}},{"x402Version":2,"scheme":"exact","serviceId":"base-account-state-v1","version":"1.0.0","resource":"/v1/base-account-state","endpoint":"https://x402.presenceoperations.com/v1/base-account-state","method":"GET","description":"A snapshot of what a Base address is and holds: native balance, transaction count, whether it is a contract, raw ERC-20 balances for up to twenty named tokens (USDC and WETH by default), and its token transfers over a stated recent window — with the window's bounds on every response so silence cannot be misread as history.","categories":["chain-state","wallet-analytics","transaction-data"],"network":"eip155:8453","chainId":8453,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x51edd63F074EaB0b1AB94c7BCf8b1e3aD43F1D2f","price":{"amountMinorUnits":"8134","currency":"USDC","decimals":6,"amountDecimal":"0.008134"},"input":[{"name":"address","in":"query","required":true,"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","minimum":null,"maximum":null,"allowedValues":null,"defaultValue":null,"rejectionCode":"ADDRESS_INVALID","missingCode":"ADDRESS_REQUIRED","description":"the Base address to snapshot, 0x-prefixed 40 hex characters","exampleValue":"0x4200000000000000000000000000000000000006"},{"name":"tokens","in":"query","required":false,"type":"string","pattern":null,"minimum":null,"maximum":null,"allowedValues":null,"defaultValue":null,"rejectionCode":"TOKENS_INVALID","missingCode":null,"description":"comma-separated ERC-20 contract addresses to read balances and transfers for, at most 20; USDC and WETH when omitted","exampleValue":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"output":{"mimeType":"application/json","fields":[{"name":"address","type":"string","nullable":false,"description":"the address the answer is about"},{"name":"blockNumber","type":"string","nullable":false,"description":"the block the state was read at"},{"name":"nativeBalanceWei","type":"string","nullable":false,"description":"the address's native balance in wei, as a raw integer string"},{"name":"transactionCount","type":"number","nullable":false,"description":"transactions the address has sent (its nonce)"},{"name":"isContract","type":"boolean","nullable":false,"description":"whether bytecode is deployed at the address"},{"name":"balances","type":"array","nullable":false,"description":"one row per requested token: raw integer balance in the token's own smallest unit, the token's decimals, and readable=false when the contract would not answer as ERC-20 — never a zero standing in for a refusal"},{"name":"transfers","type":"array","nullable":false,"description":"the address's transfers of the requested tokens inside the scanned window, newest first, capped at one hundred rows"},{"name":"scannedFromBlock","type":"string","nullable":false,"description":"the first block of the transfer scan window"},{"name":"scannedToBlock","type":"string","nullable":false,"description":"the last block of the transfer scan window"},{"name":"transfersTruncated","type":"boolean","nullable":false,"description":"true when more transfers existed in the window than one response carries"},{"name":"observedAt","type":"string","nullable":false,"description":"when the chain state this answer rests on was read"},{"name":"assumption","type":"string","nullable":false,"description":"stated on every response: the transfer window's bounds, so an empty list cannot be misread as an inactive account, and that balances are raw integers"},{"name":"detail","type":"string","nullable":false,"description":"the answer in one sentence"}]},"terms":{"deliverable":"ANALYSIS_ONLY","custody":"NONE","actsFor":"NOBODY","beneficiary":"OWN_ACCOUNT","revenueClass":"agent_commerce","paymentTiming":"AUTHORIZED_BEFORE_SERVICE","refunds":"NONE","authority":["SYSTEM_CONSTITUTION.md#30","SYSTEM_CONSTITUTION.md#36"],"statements":["This service returns analysis. It never takes an asset, holds a balance, or executes anything.","It acts for nobody: the answer describes a public order book, not a position, an account, or an instruction.","Payment is authorised per call and settled by whoever submits the transfer, so nothing of the buyer's is ever held here.","A call that cannot be answered is refused before its payment is submitted, which is why there is nothing to refund."]},"identity":{"standard":"ERC-8004","status":"UNREGISTERED","agentId":null,"chainId":null,"required":false,"caveats":[]}}]}