insumer
Wallet auth: send a wallet and conditions, get a signed boolean across 37 chains. 27 tools.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (5)
- HIGH
- MEDIUMen insumer_attest
- MEDIUMen insumer_wallet_trust
- INFOen insumer_batch_wallet_trust
- INFOen insumer_validate_code
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"insumer": {
"command": "npx",
"args": [
"mcp-server-insumer"
]
}
}
}Paquetes ejecutables
1.15.1stdioPuntos de conexión remotos
https://api.insumermodel.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (10)
🟢insumer_jwks
Get InsumerAPI's public signing keys as a JWKS (JSON Web Key Set): an ECDSA P-256 key under its kids, followed by the ML-DSA-65 post-quantum key as RFC 9964 AKP entries. Signatures on attestation and trust responses verify against these keys. Match an entry by the kid (or pqKid) on the response, never by position; an unknown kid is unverifiable, not refuted. No authentication required.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡insumer_attest(wallet, solanaWallet, xrplWallet, bitcoinWallet, tronWallet, ...)
Verify 1-10 on-chain conditions for a wallet and return a signed yes or no for each, never the balance. Condition types: token_balance, nft_ownership, eas_attestation (raw schemaId or a compliance template such as Coinbase Verifications or Gitcoin Passport), farcaster_id (IdRegistry on Optimism), evm_view_call (a single-address-argument view function returning bool), ratio_to_amount (balance >= multiple * amount), ratio_to_supply (balance / totalSupply >= minFraction, ERC-20 only), erc8004_agent (registered ERC-8004 agent on Base), and erc7710_delegation (a signed MetaMask-framework delegation from principal to agent is currently valid on Base; spend, target and call limits are reported as declaredLimits, not simulated). Chains: EVM chains plus Solana, XRPL, Bitcoin, Tron, Stellar and Sui; Bitcoin, Tron, Stellar and Sui support token_balance only. Responses are ECDSA-signed with a kid identifying the key and carry a post-quantum companion signature; each result includes evaluatedCondition, a SHA-256 conditionHash, and the block (EVM), ledger (XRPL, Stellar) or checkpoint (Sui) it was read at. proof: 'merkle' adds EIP-1186 storage proofs on supported EVM chains. Attestations with a delegation condition expire in 5 minutes instead of 30; a failed delegation result carries failReason. Costs 1 credit (2 with proof). Current chain and check counts: https://insumermodel.com/llms.txt
Esquema de entrada
{
"type": "object",
"properties": {
"wallet": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "EVM wallet address (0x...)"
},
"solanaWallet": {
"type": "string",
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
"description": "Solana wallet address (base58)"
},
"xrplWallet": {
"type": "string",
"pattern": "^r[1-9A-HJ-NP-Za-km-z]{24,34}$",
"description": "XRPL wallet address (r-address). For verifying XRP, trust line tokens (RLUSD, USDC), or NFTs on XRP Ledger."
},
"bitcoinWallet": {
"type": "string",
"pattern": "^(?:[13][1-9A-HJ-NP-Za-km-z]{25,34}|(?:bc1|BC1)[02-9ac-hj-np-zAC-HJ-NP-Z]{11,87})$",
"description": "Bitcoin address (P2PKH, P2SH, bech32, or Taproot). For verifying native BTC balance. Use chainId 'bitcoin' with contractAddress 'native'."
},
"tronWallet": {
"type": "string",
"pattern": "^T[1-9A-HJ-NP-Za-km-z]{33}$",
"description": "Tron wallet address (T-prefixed, base58). For verifying TRX or TRC20 tokens (USDT-TRC20). Use chainId 'tron'."
},
"stellarWallet": {
"type": "string",
"pattern": "^G[A-Z2-7]{55}$",
"description": "Stellar wallet address (G-prefixed). For verifying XLM or trustline assets (USDC, BENJI, etc.). Use chainId 'stellar' with the asset issuer's G-address as contractAddress and pass assetCode (e.g. 'USDC'). Soroban contract balances not visible — classic trustlines only."
},
"suiWallet": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{64}$",
"description": "Sui wallet address (0x + 64 hex chars). For verifying SUI or other Sui coins (e.g. USDC). Use chainId 'sui' with the Sui coin type as contractAddress: '0x2::sui::SUI' for native SUI, or the full coin type address::module::Name for other coins. The string 'native' is not accepted on Sui."
},
"proof": {
"type": "string",
"enum": [
"merkle"
],
"description": "Set to 'merkle' for EIP-1186 Merkle storage proofs (2 credits). For token_balance on supported EVM chains (not ZKsync Era, Sei, Viction or XDC Network, and not on non-EVM chains); for erc7710_delegation, a storage proof of the revocation slot (subject 'delegation_revocation') on managers with an on-chain-verified layout."
},
"declaredLimits": {
"type": "string",
"enum": [
"omit"
],
"description": "Set to 'omit' to leave decoded caveat limits out of the signed results of erc7710_delegation conditions, so a forwarded attestation does not carry the principal's spending ceiling. met, delegationHash, and conditionHash are byte-identical either way."
},
"format": {
"type": "string",
"enum": [
"jwt"
],
"description": "Set to 'jwt' to include a Wallet Auth by InsumerAPI token (ES256-signed JWT) in the response, with its ML-DSA-65 sibling pqJwt beside it. The jwt is verifiable by any standard JWT library using JWKS at /.well-known/jwks.json."
},
"conditions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"token_balance",
"nft_ownership",
"eas_attestation",
"farcaster_id",
"evm_view_call",
"ratio_to_amount",
"ratio_to_supply",
"erc8004_agent",
"erc7710_delegation"
],
"description": "Condition type: token_balance, nft_ownership (EVM, Solana and XRPL), eas_attestation, farcaster_id (Farcaster IdRegistry on Optimism), evm_view_call (single-address-argument view function returning bool; RPC EVM chains only), ratio_to_amount (balance >= multiple * amount; RPC EVM chains only), ratio_to_supply (balance / totalSupply >= minFraction; RPC EVM chains, ERC-20 only), erc8004_agent (registered ERC-8004 agent on Base; agentId required), or erc7710_delegation (signed MetaMask-framework delegation validity on Base; delegationManager, expectedDelegator, and delegation required; max 3 per request)"
},
"contractAddress": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"pattern": "^[A-Za-z0-9:_]+$",
"description": "Token or NFT contract address (required for token_balance, nft_ownership, ratio_to_amount, and ratio_to_supply; ratio_to_supply requires an ERC-20 contract, no native). 'native' means the chain's native coin and is for token_balance and ratio_to_amount only. nft_ownership needs the NFT contract address (0x + 40 hex on EVM); 'native' with nft_ownership is rejected with a 400, so use token_balance for the native coin. On Sui, pass a coin type address::module::Name: native SUI is '0x2::sui::SUI', and 'native' is not accepted there."
},
"chainId": {
"anyOf": [
{
"type": "integer",
"description": "EVM chain ID"
},
{
"type": "string",
"const": "solana"
},
{
"type": "string",
"const": "xrpl"
},
{
"type": "string",
"const": "bitcoin"
},
{
"type": "string",
"const": "tron"
},
{
"type": "string",
"const": "stellar"
},
{
"type": "string",
"const": "sui"
}
],
"description": "Chain identifier: EVM chain ID (integer, includes 50 for XDC), 'solana', 'xrpl', 'bitcoin', 'tron', 'stellar', or 'sui'"
},
"threshold": {
"anyOf": [
{
"type": "string",
"maxLength": 80,
"pattern": "^\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
],
"description": "Minimum balance for token_balance, as a decimal string in token/display units (e.g. \"100\", not base units). Numbers are accepted and coerced to a string. Must be > 0 when proof is merkle."
},
"multiple": {
"$ref": "#/properties/conditions/items/properties/threshold",
"description": "For ratio_to_amount: collateralization multiple as a decimal string (e.g. \"10\" for 'hold >= 10x the amount'). Met iff balance >= multiple * amount. Numbers are accepted and coerced. Must be > 0."
},
"amount": {
"$ref": "#/properties/conditions/items/properties/threshold",
"description": "For ratio_to_amount: per-request reference amount in token/display units as a decimal string (e.g. \"100\" for 100 USDC, not base units/wei). Numbers are accepted and coerced. Must be > 0."
},
"minFraction": {
"$ref": "#/properties/conditions/items/properties/threshold",
"description": "For ratio_to_supply: required share of total supply, a decimal string in (0,1] (e.g. \"0.005\" for 0.5%). Met iff balance / totalSupply() >= minFraction. Numbers are accepted and coerced. For project/governance tokens, not stablecoins."
},
"decimals": {
"type": "integer",
"minimum": 0,
"maximum": 77,
"description": "Optional. Leave it out: the token's own decimals are always read from the chain. If sent it is only a cross-check, and a value that differs from the token's own decimals is rejected with a 400."
},
"label": {
"type": "string",
"maxLength": 100,
"description": "Human-readable label"
},
"schemaId": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{64}$",
"description": "EAS schema ID (bytes32 hex). Required for eas_attestation unless template is provided."
},
"attester": {
"$ref": "#/properties/wallet",
"description": "Expected attester address (optional, for eas_attestation)"
},
"indexer": {
"$ref": "#/properties/wallet",
"description": "EAS indexer contract address (optional, for eas_attestation)"
},
"template": {
"type": "string",
"enum": [
"coinbase_verified_account",
"coinbase_verified_country",
"coinbase_one",
"gitcoin_passport_score",
"gitcoin_passport_active"
],
"description": "Compliance template name. Use instead of raw schemaId/attester/indexer for eas_attestation. Gitcoin Passport templates check Sybil resistance on Optimism."
},
"currency": {
"type": "string",
"maxLength": 40,
"pattern": "^[A-Za-z0-9]+$",
"description": "XRPL trust line currency code (e.g. 'RLUSD', 'USDC'). Required for XRPL trust line tokens, ignored for other chains."
},
"assetCode": {
"type": "string",
"pattern": "^[A-Za-z0-9]{1,12}$",
"description": "Stellar trustline asset code (e.g. 'USDC', 'BENJI'). Required for Stellar non-native (trustline) tokens. Use contractAddress 'native' for XLM. Ignored for other chains. Flows into conditionHash so different assets on the same issuer produce different hashes."
},
"taxon": {
"type": "integer",
"description": "XRPL NFToken taxon filter (optional, for nft_ownership on XRPL only). Filters NFTs by issuer + taxon."
},
"selector": {
"type": "string",
"maxLength": 100,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*\\(address\\)$",
"description": "Required for evm_view_call. Canonical signature of a view function returning bool, in the form 'functionName(address)' (e.g. 'hasAccess(address)'). Single-address-argument view functions only; the 4-byte selector is derived from this signature."
},
"agentId": {
"type": "string",
"pattern": "^\\d{1,78}$",
"description": "Required for erc8004_agent. The ERC-8004 agent ID as a uint256 decimal string — the caller must supply it (the deployed Identity Registry has no wallet-to-agentId reverse lookup). Met iff the attested wallet owns the agent NFT (ownerOf) or is the registry's signature-verified agentWallet binding. Registry 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 on Base; chainId 8453 only. Honest semantics: registration is permissionless minting — the signed statement implies no vetting, no reputation, no endorsement."
},
"delegationManager": {
"$ref": "#/properties/wallet",
"description": "Required for erc7710_delegation. DelegationManager contract the delegation was signed against — one of the recognized MetaMask Delegation Framework managers on Base (current default 0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3). chainId 8453 only."
},
"expectedDelegator": {
"$ref": "#/properties/wallet",
"description": "Required for erc7710_delegation. The principal address the caller asserts authorized this agent. The condition fails unless the delegation's declared delegator matches — without it a self-delegation would read as authority, so there is no structural-only mode."
},
"delegation": {
"type": "object",
"properties": {
"delegator": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "Principal address that signed the delegation. Must equal expectedDelegator."
},
"delegate": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "Agent wallet the delegation authorizes. Must equal the attested wallet."
},
"authority": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{64}$",
"description": "Root authority only (0xffff…ffff, 32 bytes of 0xff). Delegation chains are unsupported."
},
"caveats": {
"type": "array",
"items": {
"type": "object",
"properties": {
"enforcer": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "Caveat enforcer contract address"
},
"terms": {
"type": "string",
"maxLength": 20000,
"pattern": "^0x[0-9a-fA-F]*$",
"description": "ABI-encoded caveat terms (hex)"
}
},
"required": [
"enforcer",
"terms"
],
"additionalProperties": false
},
"maxItems": 16,
"description": "Caveats the principal signed (max 16). Every enforcer must be recognized or the condition fails — no override."
},
"salt": {
"anyOf": [
{
"$ref": "#/properties/conditions/items/properties/agentId"
},
{
"type": "integer",
"minimum": 0
}
],
"description": "Delegation salt (decimal string; numbers coerced)"
},
"signature": {
"type": "string",
"maxLength": 20000,
"pattern": "^0x[0-9a-fA-F]*$",
"description": "EIP-712 signature over the delegation (hex). EOA recovery, or ERC-1271 for smart-contract principals."
}
},
"required": [
"delegator",
"delegate",
"authority",
"caveats",
"salt",
"signature"
],
"additionalProperties": false,
"description": "Required for erc7710_delegation. The signed ERC-7710 delegation to evaluate. Met iff ALL of: attested wallet is the delegate; declared delegator is expectedDelegator; EIP-712 signature verifies (EOA or ERC-1271); unrevoked at the anchored block; every caveat enforcer recognized; any time-window caveat currently satisfied. Recognized enforcers: timestamp (evaluated), erc20_transfer_amount, native_transfer_amount, allowed_targets, limited_calls (the last four are REPORTED as declaredLimits — redemption enforces them, the attestation does not simulate enforcement)."
}
},
"required": [
"type"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 10,
"description": "1-10 on-chain conditions to verify"
}
},
"required": [
"conditions"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢insumer_compliance_templates
List the compliance templates available for EAS attestation conditions. Each template carries pre-configured schema IDs, attester addresses, and decoder contracts for a KYC or identity provider (Coinbase Verifications on Base, Gitcoin Passport on Optimism), so a condition can name the template instead of raw EAS parameters. No authentication or credits required.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡insumer_wallet_trust(wallet, solanaWallet, xrplWallet, bitcoinWallet, tronWallet, ...)
Generate a signed wallet trust fact profile for an EVM wallet: a curated set of presence checks organized into dimensions (stablecoins, governance, NFTs, staking, institutional stablecoins, tokenized treasuries, stablecoin deposits, wrapped bitcoin, names). Optional Solana, XRPL, Bitcoin and Tron wallets add their own dimensions; optional Stellar and Sui wallets let rows inside existing dimensions evaluate. Rows on a chain whose wallet is not supplied stay in the signed profile with evaluated: false. Every check is held or not held, never a balance. The signed conditionSetVersion names the check list that was run; log it, never reject on it. Returns per-dimension pass/fail counts and an overall summary: no score, no opinion. Designed for AI agent-to-agent trust decisions. Costs 3 credits (6 with proof: 'merkle'). Current chain and check counts: https://insumermodel.com/llms.txt
Esquema de entrada
{
"type": "object",
"properties": {
"wallet": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "EVM wallet address (0x...) to profile"
},
"solanaWallet": {
"type": "string",
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
"description": "Solana wallet address (base58). If provided, adds the Solana dimension and lets the institutional rows on Solana evaluate."
},
"xrplWallet": {
"type": "string",
"pattern": "^r[1-9A-HJ-NP-Za-km-z]{24,34}$",
"description": "XRPL wallet address (r-address). If provided, adds the XRPL dimension and lets the institutional row on XRPL evaluate."
},
"bitcoinWallet": {
"type": "string",
"pattern": "^(?:[13][1-9A-HJ-NP-Za-km-z]{25,34}|(?:bc1|BC1)[02-9ac-hj-np-zAC-HJ-NP-Z]{11,87})$",
"description": "Bitcoin address. If provided, adds the Bitcoin dimension (native BTC presence)."
},
"tronWallet": {
"type": "string",
"pattern": "^T[1-9A-HJ-NP-Za-km-z]{33}$",
"description": "Tron wallet address (T-prefixed). If provided, adds the Tron dimension."
},
"stellarWallet": {
"type": "string",
"pattern": "^G[A-Z2-7]{55}$",
"description": "Stellar wallet address (G-prefixed). If provided, lets the institutional rows on Stellar evaluate (classic trustlines). Adds no dimension."
},
"suiWallet": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{64}$",
"description": "Sui wallet address (0x + 64 hex). If provided, lets the rows on Sui evaluate. Adds no dimension."
},
"proof": {
"type": "string",
"enum": [
"merkle"
],
"description": "Set to 'merkle' for EIP-1186 Merkle storage proofs on EVM token checks (6 credits). Rows whose balance is computed rather than stored (Aave aTokens, BUIDL) and NFT/non-EVM rows are declined with a reason; the premium is refunded whenever no proof is delivered."
}
},
"required": [
"wallet"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢insumer_batch_wallet_trust(wallets, proof)
Generate wallet trust fact profiles for up to 10 wallets in a single request. Shared block fetches make this faster than sequential calls. Each wallet gets an independently signed profile with its own TRST-XXXXX ID. Supports partial success: failed wallets get error entries while successful ones return full profiles. Costs 3 credits per successful wallet (6 with proof: 'merkle'); credits are charged only for successful profiles.
Esquema de entrada
{
"type": "object",
"properties": {
"wallets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"wallet": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "EVM wallet address (0x...)"
},
"solanaWallet": {
"type": "string",
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
"description": "Solana wallet address (base58). Adds the Solana dimension."
},
"xrplWallet": {
"type": "string",
"pattern": "^r[1-9A-HJ-NP-Za-km-z]{24,34}$",
"description": "XRPL wallet address (r-address). Adds the XRPL dimension."
},
"bitcoinWallet": {
"type": "string",
"pattern": "^(?:[13][1-9A-HJ-NP-Za-km-z]{25,34}|(?:bc1|BC1)[02-9ac-hj-np-zAC-HJ-NP-Z]{11,87})$",
"description": "Bitcoin address. Adds the Bitcoin dimension."
},
"tronWallet": {
"type": "string",
"pattern": "^T[1-9A-HJ-NP-Za-km-z]{33}$",
"description": "Tron wallet address (T-prefixed). Adds the Tron dimension."
},
"stellarWallet": {
"type": "string",
"pattern": "^G[A-Z2-7]{55}$",
"description": "Stellar wallet address (G-prefixed). Lets the rows on Stellar evaluate; adds no dimension."
},
"suiWallet": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{64}$",
"description": "Sui wallet address (0x + 64 hex). Lets the rows on Sui evaluate; adds no dimension."
}
},
"required": [
"wallet"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 10,
"description": "1-10 wallet entries to profile"
},
"proof": {
"type": "string",
"enum": [
"merkle"
],
"description": "Set to 'merkle' for EIP-1186 Merkle storage proofs on all wallets (6 credits/wallet)."
}
},
"required": [
"wallets"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢insumer_list_merchants(token, verified, limit, offset)
Browse merchants in the public directory. Filter by accepted token, verification status. Returns company name, website, tokens accepted, and discount info.
Esquema de entrada
{
"type": "object",
"properties": {
"token": {
"type": "string",
"maxLength": 32,
"description": "Filter by accepted token symbol, e.g. 'UNI'"
},
"verified": {
"type": "string",
"enum": [
"true",
"false"
],
"description": "Filter by domain verification status"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"description": "Results per page (default 50, max 200)"
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Pagination offset (default 0)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢insumer_get_merchant(id)
Get full public merchant profile including token tiers, NFT collections, discount mode, and verification status.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[a-zA-Z0-9_-]+$",
"description": "Merchant ID"
}
},
"required": [
"id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢insumer_list_tokens(chain, symbol, type)
List all registered tokens and NFT collections in the Insumer registry. Filter by chain, symbol, or asset type.
Esquema de entrada
{
"type": "object",
"properties": {
"chain": {
"anyOf": [
{
"type": "integer"
},
{
"type": "string",
"const": "solana"
},
{
"type": "string",
"const": "xrpl"
},
{
"type": "string",
"const": "bitcoin"
}
],
"description": "Filter by chain ID"
},
"symbol": {
"type": "string",
"maxLength": 32,
"description": "Filter by token symbol"
},
"type": {
"type": "string",
"enum": [
"token",
"nft"
],
"description": "Filter by asset type"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢insumer_check_discount(merchant, wallet, solanaWallet, xrplWallet, tronWallet, ...)
Calculate discount for a wallet at a merchant. Checks on-chain balances and returns tier and discount percentage per token, never raw balance amounts. Free: does not consume credits.
Esquema de entrada
{
"type": "object",
"properties": {
"merchant": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[a-zA-Z0-9_-]+$",
"description": "Merchant ID"
},
"wallet": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "EVM wallet address (0x...)"
},
"solanaWallet": {
"type": "string",
"pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
"description": "Solana wallet address (base58)"
},
"xrplWallet": {
"type": "string",
"pattern": "^r[1-9A-HJ-NP-Za-km-z]{24,34}$",
"description": "XRPL wallet address (r-address)"
},
"tronWallet": {
"type": "string",
"pattern": "^T[1-9A-HJ-NP-Za-km-z]{33}$",
"description": "Tron wallet address (T-prefixed)"
},
"stellarWallet": {
"type": "string",
"pattern": "^G[A-Z2-7]{55}$",
"description": "Stellar wallet address (G-prefixed)"
},
"suiWallet": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{64}$",
"description": "Sui wallet address (0x + 64 hex)"
}
},
"required": [
"merchant"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢insumer_validate_code(code)
Validate an INSR-XXXXX discount code. For merchant backends during ACP/UCP checkout to confirm code validity, discount percent, and expiry. Returns valid/invalid status with reason. No authentication required, no credits consumed. Does not expose wallet or token data.
Esquema de entrada
{
"type": "object",
"properties": {
"code": {
"type": "string",
"pattern": "^INSR-[A-Z0-9]{5}$",
"description": "Discount code in INSR-XXXXX format"
}
},
"required": [
"code"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Comunidad
Evidencia