Skip to main content
Glama

What the chain records about one address

counterparty_check
Read-onlyIdempotent

Before paying or hiring an agent: what the chain records about that address. Independent payers (counterparties that paid it and were never paid back), the ones it does pay back, how concentrated its custom is, WHETHER THOSE INDEPENDENT PAYERS ARE INDEPENDENT OF EACH OTHER under independence, WHAT IT ITSELF RESTS ON under restsOn (how many parties it pays and how much of its spending goes to the largest of them), how its ACP jobs ended, whether its advertised service answers, and when it was last paid. Free. Three limits to repeat whenever quoting it: independent means no payment BACK on the rails we read, NOT proof the payers are different parties, since one owner can fund many addresses that never pay each other; an all-time record says nothing about whether the agent still works — 44% of agents ever paid have not been paid in 90 days; and restsOn counts every party this address has PAID rather than purchases from identified sellers, so a recipient there has not been shown to supply anything, and restsOn.suppliers of zero means it has paid nobody on a rail we read, never that it depends on nobody. Takes an EVM address, a Cardano payment address (addr1…) or a Solana address.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
addressYesThe address you are about to pay or hire.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
acpNoHow its jobs ended, where it has any.
mechNoDeliveries on the Olas mech marketplace, and what was paid for them where we hold it. A rail many agents never touch; zero here is not a mark against an address.
x402NoSales and payers on the x402 rail. Payers are counted as parties, not payments: one buyer paying fifty times is one payer.
formatYesWhat kind of address this is and what we read for it.
limitsYesWhat this answer cannot tell you. Quote it with the numbers.
masumiNoEscrows on the Masumi rail. Null where we hold no reading for this address at all, which is not the same as zero escrows.
addressYesThe address as we read it, normalised. Compare it with what you sent before acting on the answer.
paidForNoWhat it was paid for, in the subject’s own words.
restsOnNosuppliers, payments, spentUsd, largestShare and recent.{suppliers90,largestShare90}: every party this address has PAID. NOT the mirror of `dealings` — a dealing is a sale and needs a seller on the other end, while a payment out counts whoever receives it, so a recipient here may be a relayer, a settlement route or a customer being paid back. `largestShare` is null below three suppliers, where it could only be a half or a whole. Zero suppliers means it has paid nobody on a rail we read, never that it depends on nobody: a model, an endpoint, a host and a key are dependencies no payment rail shows.
alsoHereNoThe same address on the capital side — a vault or an operator — with the check to call. A match on the address, never an identification of the party.
dealingsNorails, chains, counterparties, independent, largestShare, firstPaid, lastPaid. `independent` means no payment BACK on the rails we read — NOT proof the payers are different parties, since one owner can fund many addresses.
identityNoRegistrations it holds. Claims, never verification.
servicesNoCallable services it declares, and how many answered our probe.
independenceNopayers, linked, viaParties, largestGroup: payers of this address that share an OBSCURE third party with another of its payers. This is the test of `dealings.independent`, which counts payers that never paid it back and has never been proof they are different parties. A party paid by two to ten addresses in all counts; a hub paid by more does not, because two agents both paying a hub have shown only that the hub is popular. EVIDENCE OF A LINK, NEVER PROOF OF ONE OPERATOR — two payers paying one small service are two customers of that service. `groups` names which payers and through what and needs the `independence.test` capability; where it is withheld, `capability` says so. A linked count of zero is not proof they are unrelated: one owner funding addresses that never touch each other again leaves nothing for this to find. `differentPopulation` IS PRESENT WHEN THIS BLOCK AND THE RECORD ABOVE IT COUNT DIFFERENT NUMBERS OF PAYERS, which happens because they are two jobs on two schedules: it carries `why: "different_population_snapshots"`, both counts and both dates. Neither figure is wrong, and the linkage here describes the population in THIS block, not the larger one. It is null when they agree, so its presence means something.
observationsYesThe findings, each with its evidence class and its own words. Read these first.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / independence / description
      Previous value: -"payers, linked, viaParties, largestGroup: payers of this address that share an OBSCURE third party with another of its payers. This is the test of `dealings.independent`, which counts payers that never paid it back and has never been proof they are different parties. A party paid by two to ten addresses in all counts; a hub paid by more does not, because two agents both paying a hub have shown only that the hub is popular. EVIDENCE OF A LINK, NEVER PROOF OF ONE OPERATOR — two payers paying one small service are two customers of that service. `groups` names which payers and through what and needs the `independence.test` capability; where it is withheld, `capability` says so. A linked count of zero is not proof they are unrelated: one owner funding addresses that never touch each other again leaves nothing for this to find."New value: +"payers, linked, viaParties, largestGroup: payers of this address that share an OBSCURE third party with another of its payers. This is the test of `dealings.independent`, which counts payers that never paid it back and has never been proof they are different parties. A party paid by two to ten addresses in all counts; a hub paid by more does not, because two agents both paying a hub have shown only that the hub is popular. EVIDENCE OF A LINK, NEVER PROOF OF ONE OPERATOR — two payers paying one small service are two customers of that service. `groups` names which payers and through what and needs the `independence.test` capability; where it is withheld, `capability` says so. A linked count of zero is not proof they are unrelated: one owner funding addresses that never touch each other again leaves nothing for this to find. `differentPopulation` IS PRESENT WHEN THIS BLOCK AND THE RECORD ABOVE IT COUNT DIFFERENT NUMBERS OF PAYERS, which happens because they are two jobs on two schedules: it carries `why: \"different_population_snapshots\"`, both counts and both dates. Neither figure is wrong, and the linkage here describes the population in THIS block, not the larger one. It is null when they agree, so its presence means something."
  2. Changed1 schema field changed
    • addedOutput schema / properties / independence
      Added value: +{
      +  "description": "payers, linked, viaParties, largestGroup: payers of this address that share an OBSCURE third party with another of its payers. This is the test of `dealings.independent`, which counts payers that never paid it back and has never been proof they are different parties. A party paid by two to ten addresses in all counts; a hub paid by more does not, because two agents both paying a hub have shown only that the hub is popular. EVIDENCE OF A LINK, NEVER PROOF OF ONE OPERATOR — two payers paying one small service are two customers of that service. `groups` names which payers and through what and needs the `independence.test` capability; where it is withheld, `capability` says so. A linked count of zero is not proof they are unrelated: one owner funding addresses that never touch each other again leaves nothing for this to find.",
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  3. Changed1 schema field changed
    • addedOutput schema / properties / restsOn
      Added value: +{
      +  "description": "suppliers, payments, spentUsd, largestShare and recent.{suppliers90,largestShare90}: every party this address has PAID. NOT the mirror of `dealings` — a dealing is a sale and needs a seller on the other end, while a payment out counts whoever receives it, so a recipient here may be a relayer, a settlement route or a customer being paid back. `largestShare` is null below three suppliers, where it could only be a half or a whole. Zero suppliers means it has paid nobody on a rail we read, never that it depends on nobody: a model, an endpoint, a host and a key are dependencies no payment rail shows.",
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  4. Changed4 schema fields changed
    • addedOutput schema / properties / address / description
      Added value: +"The address as we read it, normalised. Compare it with what you sent before acting on the answer."
    • addedOutput schema / properties / masumi / description
      Added value: +"Escrows on the Masumi rail. Null where we hold no reading for this address at all, which is not the same as zero escrows."
    • addedOutput schema / properties / mech / description
      Added value: +"Deliveries on the Olas mech marketplace, and what was paid for them where we hold it. A rail many agents never touch; zero here is not a mark against an address."
    • addedOutput schema / properties / x402 / description
      Added value: +"Sales and payers on the x402 rail. Payers are counted as parties, not payments: one buyer paying fifty times is one payer."
  5. Changed20 schema fields changed
    • changedOutput schema / properties / acp / description
      Previous value: -"How its ACP jobs ended, where it has any."New value: +"How its jobs ended, where it has any."
    • changedOutput schema / properties / acp / type
      Previous value: -[
      -  "object",
      -  "null"
      -]New value: +"object"
    • addedOutput schema / properties / alsoHere
      Added value: +{
      +  "description": "The same address on the capital side — a vault or an operator — with the check to call. A match on the address, never an identification of the party.",
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / dealings / description
      Added value: +"rails, chains, counterparties, independent, largestShare, firstPaid, lastPaid. `independent` means no payment BACK on the rails we read — NOT proof the payers are different parties, since one owner can fund many addresses."
    • changedOutput schema / properties / dealings / type
      Previous value: -"integer"New value: +"object"
    • addedOutput schema / properties / format
      Added value: +{
      +  "description": "What kind of address this is and what we read for it.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / identity
      Added value: +{
      +  "description": "Registrations it holds. Claims, never verification.",
      +  "type": "object"
      +}
    • removedOutput schema / properties / independent
      Removed value: -{
      -  "description": "Counterparties that paid it and were never paid back. NOT proof they are different parties: one owner can fund many addresses.",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / largestShare
      Removed value: -{
      -  "description": "How concentrated its custom is, 0 to 1.",
      -  "type": [
      -    "number",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / lastPaid
      Removed value: -{
      -  "description": "An all-time record says nothing about whether the agent still works.",
      -  "format": "date-time",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • addedOutput schema / properties / limits
      Added value: +{
      +  "description": "What this answer cannot tell you. Quote it with the numbers.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / masumi
      Added value: +{
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / mech
      Added value: +{
      +  "type": "object"
      +}
    • addedOutput schema / properties / observations
      Added value: +{
      +  "description": "The findings, each with its evidence class and its own words. Read these first.",
      +  "items": {
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / paidFor
      Added value: +{
      +  "description": "What it was paid for, in the subject’s own words.",
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • removedOutput schema / properties / says
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / services
      Added value: +{
      +  "description": "Callable services it declares, and how many answered our probe.",
      +  "type": "object"
      +}
    • removedOutput schema / properties / serving
      Removed value: -{
      -  "description": "Whether its advertised service answered our probe. Null where it advertises none.",
      -  "type": [
      -    "boolean",
      -    "null"
      -  ]
      -}
    • addedOutput schema / properties / x402
      Added value: +{
      +  "type": "object"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "address",
      -  "says"
      -]New value: +[
      +  "address",
      +  "format",
      +  "observations",
      +  "limits"
      +]
  6. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "acp": {
      +      "description": "How its ACP jobs ended, where it has any.",
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "address": {
      +      "type": "string"
      +    },
      +    "dealings": {
      +      "type": "integer"
      +    },
      +    "independent": {
      +      "description": "Counterparties that paid it and were never paid back. NOT proof they are different parties: one owner can fund many addresses.",
      +      "type": "integer"
      +    },
      +    "largestShare": {
      +      "description": "How concentrated its custom is, 0 to 1.",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "lastPaid": {
      +      "description": "An all-time record says nothing about whether the agent still works.",
      +      "format": "date-time",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "says": {
      +      "type": "string"
      +    },
      +    "serving": {
      +      "description": "Whether its advertised service answered our probe. Null where it advertises none.",
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "address",
      +    "says"
      +  ],
      +  "type": "object"
      +}
  7. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources