Skip to main content
Glama

Token pre-trade brief

genesis402_token_brief

Check an ERC-20 token contract before buying, listing, or accepting it: get supply, price, holder concentration, verification, and sanctions signals in one call.

Instructions

Paid ($0.03 USDC). Pre-trade check for one ERC-20 token contract in a single call: name, symbol, decimals and supply, current USD price, top-holder concentration, source-verification status and a sanctions-list check on the contract address. Use before buying, listing or accepting an unfamiliar token. For a wallet rather than a token use genesis402_wallet_brief. Returns each part with its sources (unreadable parts are marked unavailable, never zeroed) and an evidence hash. Signals only, not investment advice. Payment: call once without payment_signature to get the exact price quote (nothing is charged or signed), then call again with the signed payment to receive the result and settlement details.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chainNoChain the token contract lives on. Defaults to base when omitted.
contractYesThe ERC-20 token contract address, 0x followed by 40 hex characters. Must be the token contract, not a holder's wallet.
payment_signatureNoOptional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeYesQUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.
paidYestrue only when a payment was settled for this call.
priceNoThe Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment.
resultNoPAID or FREE: the endpoint's JSON result.
resourceNoQUOTE_ONLY: the full URL of the paid resource.
how_to_payNoQUOTE_ONLY: how to sign and resend the call.
settlementNoPAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none.
what_you_getNoQUOTE_ONLY: the rail's description of what the payment buys.
payment_required_b64NoQUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.
also_accepted_networksNoQUOTE_ONLY: every network the 402 challenge accepts.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.3.4
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "also_accepted_networks": {
      +      "description": "QUOTE_ONLY: every network the 402 challenge accepts.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "how_to_pay": {
      +      "description": "QUOTE_ONLY: how to sign and resend the call.",
      +      "type": "string"
      +    },
      +    "mode": {
      +      "description": "QUOTE_ONLY: price quote only, nothing signed or charged. PAID: the call was paid and result holds the data. FREE: the endpoint answered without payment.",
      +      "enum": [
      +        "QUOTE_ONLY",
      +        "PAID",
      +        "FREE"
      +      ],
      +      "type": "string"
      +    },
      +    "paid": {
      +      "description": "true only when a payment was settled for this call.",
      +      "type": "boolean"
      +    },
      +    "payment_required_b64": {
      +      "description": "QUOTE_ONLY: the raw base64 PAYMENT-REQUIRED header, to sign with any x402 v2 client.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "price": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "atomic": {
      +              "description": "Price in USDC atomic units (6 decimals), as a decimal string.",
      +              "type": "string"
      +            },
      +            "network": {
      +              "description": "CAIP-2 network id of the lane, eip155:8453 (Base).",
      +              "type": "string"
      +            },
      +            "payTo": {
      +              "description": "Address the payment settles to.",
      +              "type": "string"
      +            },
      +            "usd": {
      +              "description": "Price in US dollars.",
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "atomic",
      +            "usd",
      +            "payTo",
      +            "network"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "The Base USDC quote. Present on QUOTE_ONLY and on PAID calls made by a local payer; null when the rail offered no Base USDC lane or the caller signed the payment."
      +    },
      +    "resource": {
      +      "description": "QUOTE_ONLY: the full URL of the paid resource.",
      +      "type": "string"
      +    },
      +    "result": {
      +      "description": "PAID or FREE: the endpoint's JSON result."
      +    },
      +    "settlement": {
      +      "description": "PAID: decoded PAYMENT-RESPONSE settlement (transaction hash, network, payer), or null if the rail sent none."
      +    },
      +    "what_you_get": {
      +      "description": "QUOTE_ONLY: the rail's description of what the payment buys.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "mode",
      +    "paid"
      +  ],
      +  "type": "object"
      +}
  2. Changed4 schema fields changedv0.3.3
    • changedInput schema / properties / chain / description
      Previous value: -"Optional EVM chain name to focus on, e.g. ethereum or base. Omit to cover all supported chains."New value: +"Chain the token contract lives on. Defaults to base when omitted."
    • addedInput schema / properties / chain / enum
      Added value: +[
      +  "base",
      +  "ethereum",
      +  "polygon",
      +  "arbitrum",
      +  "optimism"
      +]
    • removedInput schema / properties / chain / maxLength
      Removed value: -24
    • changedInput schema / properties / contract / description
      Previous value: -"The ERC-20 token contract address, 0x followed by 40 hex characters (not a wallet address)."New value: +"The ERC-20 token contract address, 0x followed by 40 hex characters. Must be the token contract, not a holder's wallet."
  3. Changed3 schema fields changedv0.3.2
    • addedInput schema / properties / chain / description
      Added value: +"Optional EVM chain name to focus on, e.g. ethereum or base. Omit to cover all supported chains."
    • addedInput schema / properties / contract / description
      Added value: +"The ERC-20 token contract address, 0x followed by 40 hex characters (not a wallet address)."
    • changedInput schema / properties / payment_signature / description
      Previous value: -"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first."New value: +"Optional. An x402 v2 payment you signed for this call's quote (the PAYMENT-SIGNATURE header value). Omit to get the price quote first; nothing is charged without it."
  4. First observedv0.3.1

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=false and openWorldHint=true; the description adds substantial context beyond them: the $0.03 USDC cost, the two-call quote-then-pay handshake, that unreadable parts are marked unavailable rather than zeroed, and that an evidence hash is returned. This is exactly the behavioral disclosure a paid, state-mutating tool needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads price and scope, then routing, then behavior, then payment mechanics – a sensible order with almost no filler. It is dense and long, but each sentence carries distinct information an agent needs before calling.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and the description still covers the payment workflow, evidence hash and unavailable-vs-zero semantics. For a paid, open-world tool with three parameters this is complete enough to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so chain, contract and payment_signature are already fully documented in the schema. The description restates the contract-vs-wallet constraint and the payment pattern but adds no syntax or format detail beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('pre-trade check for one ERC-20 token contract in a single call') and enumerates the exact outputs. It explicitly contrasts itself with genesis402_wallet_brief, so an agent can route between the token and wallet variants without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger ('Use before buying, listing or accepting an unfamiliar token') and names the alternative sibling plus the condition that selects it ('For a wallet rather than a token use genesis402_wallet_brief'). Nothing about when to pick this tool is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.