Per-merchant stats and identity
get_merchantThe same shape as /agents/{wallet}, for a wallet in its receiving role.
Wraps GET /v0/merchants/{wallet}. Access: requires an API key (Authorization: Bearer rh_live_… or x-api-key).
Returns:
wallet: The wallet queried, lowercased.
role: The role it was queried in:
agentormerchant.coverage: Read this first.
knownfalse means the index has never observed this address, so every figure below is a zero meaning "not observed" — not "observed to be nothing". Alsofirst_seen,last_seen,settlements_scanned,scan_truncatedandscan_cap.entities: Resolved identity rows: display name, ENS, ERC-8004 card, role, first and last seen.
erc8004_agents: ERC-8004 registrations whose on-chain agentWallet is this address.
aggregates: That wallet's own totals: inbound/outbound USD and counts, distinct counterparties, chain split.
basissays what they were computed over —index_rollupis the whole history,scanned_settlementsis the capped scan and is a floor whencoverage.scan_truncatedis set.distinct_counterpartiesexcludes the wallet itself on both bases.chain_splitis the exception and carries its ownchain_split_basis: the rollup is keyed by wallet and holds no chain dimension, so that split is ALWAYS the scan and is capped with it, whatever the object-levelbasissays.data_quality: The risk annotation. Route on
verdict, not onnote.verdictis one ofunobserved(never seen — nothing assessed),patterns_detected,no_patterns_detected, orinsufficient_evidence— the last meaning the address WAS observed, nothing fired, and not enough of its history was examined for that to rule anything out.checkscarries every check with itsthreshold, what wasobserved, its ownbasis, andconclusive: a check that FIRED is always conclusive (a pattern seen in a sample happened), a check that did not fire on a truncated scan is not.notesays the same thing in a sentence and is derived from the two.recent: A slice of its activity,
recent_limitrows (default 5). Each row also carriesis_self_payment(payer = payee, annotated rather than only excluded — a third of the feed can be self-payment) andevidence:{ verified, method, probability, tier }.verifiedis THREE-VALUED —truea named facilitator relayed it,falseexamined with no EIP-3009 marker, andnullgasless and authorized but NOT ESTABLISHED as x402, which is not the same as disproven.tierisproven|probable|unproven|not_x402|ungraded.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | An EVM address (`0x` + 40 hex digits; case-insensitive, lowercased before lookup) or a Solana address (base58; case-sensitive, used exactly as given). An address the index has not observed answers `coverage.known: false`, not zeros. | |
| recent_limit | No | Settlement rows to embed in the profile. 0 omits them. Default 5 — this was an unbounded 25, which is most of the payload on a surface where a response is billed as context tokens. |