Skip to main content
Glama

Settlens

Verify Solana signatures and payment instructions

verify_solana_transaction
Read-onlyIdempotent

Offline check of every ed25519 signature of a Base64 Solana transaction (legacy or versioned), for example payload.transaction of an x402 Solana payment. Each required signer slot is checked against its signer key. An x402 exact SVM payload is partially signed: the client signs, and the facilitator adds the fee-payer signature at settlement, so empty (all-zero) slots are reported as pendingSigners (feePayerPending is true when the fee payer has not signed yet) rather than as failures. verified is true only when at least one signature is present, every present signature is valid and the number of signature slots matches the message header. Transactions larger than 1232 bytes are refused. An optional reviewed requirement adds conservative offline TransferChecked inspection in payment: mint, merchant ATA, exact amount, signed client, sponsor isolation, compute caps and memo. payment.verified is separate from signature-only verified. Unsupported programs, unresolved address lookup tables and Token-2022 extensions cannot be verified offline. It does NOT check account state, balances, execution, replay or settlement.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
policyNo
requirementNoReviewed exact SVM terms for optional conservative instruction inspection; never execution proof.
transactionYesThe Base64-encoded serialized Solana transaction.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
schemeYes
paymentNo
reasonsYes
signersNoOne entry per signature slot, in order (slot 0 is the fee payer), with its base58 publicKey and status: valid, invalid or pending.
versionNo
feePayerYes
verifiedYes
pendingSignersNo
signatureCountNo
signatureValidYes
feePayerPendingNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, but the description goes well beyond them: it discloses the pendingSigners/feePayerPending semantics of partially signed payloads, the exact conditions for verified=true, the 1232-byte size limit, and offline-verification limits (lookup tables, Token-2022 extensions). This is exactly the kind of behavioral context an agent cannot infer from structured fields.

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?

Long but front-loaded with the core purpose in the first clause, and each sentence carries distinct information (pending-signer handling, verified criteria, size refusal, reviewed inspection, limitations). Some sentences are dense and could be split, but there is no filler or repetition.

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?

With an output schema present, return-format detail is unnecessary, and annotations cover the safety profile. The description still supplies the scope, edge cases, refusal criteria, and explicit non-goals, so an agent has everything needed to invoke and interpret it correctly.

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

Parameters4/5

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

Schema coverage is 67% and only the transaction field is self-described; the description compensates by explaining the optional reviewed requirement (mint, merchant ATA, exact amount, signed client, sponsor isolation, compute caps, memo) and clarifying that payment.verified is distinct from signature-only verified. It adds real meaning over the schema, though it doesn't map every field (e.g. maxPriorityFeeMicroLamports) explicitly.

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: "Offline check of every ed25519 signature of a Base64 Solana transaction (legacy or versioned)". It situates the tool in the x402 Solana payment flow and clearly separates itself from siblings like verify_payment_signature by scoping to signature verification only.

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

Usage Guidelines4/5

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

Explicitly frames the use case (x402 exact SVM payloads, partially signed) and draws a strong negative boundary: "It does NOT check account state, balances, execution, replay or settlement." It stops short of naming which sibling handles those cases, so routing to alternatives is implied rather than directed.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources