Skip to main content
Glama

Synthex Forge — x402 Paid Agent Services

Create Identity Attestation

create_identity_attestation
Destructive

Bind an agent to its operator and its wallet. use it rather than create_control_proof for identity attestation, not control proof; an object with 59 fields including agentId, agent_card. $1 USDC.

Input Schema

NameRequiredDescriptionDefault
chainNoThe chain this operation operates on. See the schema for its type and whether it is required.
walletNoThe wallet this operation operates on. See the schema for its type and whether it is required.
agent_idNoThe identifier of the agent the operation concerns.
evidenceNoThe evidence supporting the claim, as a list of named documents or URLs.
operatorNoThe operator this operation operates on. See the schema for its type and whether it is required.
valid_fromNoThe valid from this operation operates on. See the schema for its type and whether it is required.
validity_daysNoThe validity days this operation operates on. See the schema for its type and whether it is required.

Output Schema

NameRequiredDescriptionDefault
llmNoThe `llm` field of the response.
kindNoThe `kind` field of the response.
chainNoThe `chain` field of the response.
clockNoThe `clock` field of the response.
indexNoThe `index` field of the response.
valueNoThe `value` field of the response.
key_idNoThe `key_id` field of the response.
reasonNoWhy the verdict was reached.
walletNoThe `wallet` field of the response.
agentIdNoThe `agentId` field of the response.
profileNoThe `profile` field of the response.
verdictYesThe decision this tool returned.
agent_idNoThe `agent_id` field of the response.
attestedNoThe `attested` field of the response.
declaredNoThe `declared` field of the response.
issuedAtNoThe `issuedAt` field of the response.
operatorNoThe `operator` field of the response.
verdictsNoThe `verdicts` field of the response.
verifiedNoThe `verified` field of the response.
assuranceNoThe `assurance` field of the response.
bindingIdNoThe `bindingId` field of the response.
expiresAtNoThe `expiresAt` field of the response.
issued_atNoThe `issued_at` field of the response.
signatureYesThe Ed25519 signature over the evidence core, base64-encoded.
signed_byNoThe key id that signed the answer.
agent_cardNoThe `agent_card` field of the response.
binding_idNoThe `binding_id` field of the response.
expires_atNoThe `expires_at` field of the response.
public_keyNoThe `public_key` field of the response.
unverifiedNoThe `unverified` field of the response.
valid_fromNoThe `valid_from` field of the response.
chain_proofNoThe `chain_proof` field of the response.
methodologyNoThe `methodology` field of the response.
registrationNoThe `registration` field of the response.
validityDaysNoThe `validityDays` field of the response.
coverage_gapsNoThe `coverage_gaps` field of the response.
evidenceKindsNoThe `evidenceKinds` field of the response.
evidence_coreYesThe canonical, signed core of the answer — the payload the signature covers.
output_sha256YesSHA-256 hex digest of the canonical evidence core.
validity_daysNoThe `validity_days` field of the response.
evidence_countNoThe `evidence_count` field of the response.
evidence_kindsNoThe `evidence_kinds` field of the response.
missing_fieldsNoThe `missing_fields` field of the response.
profileVersionNoVersion of the answer profile.
verified_countNoThe `verified_count` field of the response.
evidence_checksNoThe `evidence_checks` field of the response.
profile_versionNoVersion of the answer profile.
assurance_levelsNoThe `assurance_levels` field of the response.
canonicalizationNoThe canonicalisation rule the digest was computed under.
self_declarationNoThe `self_declaration` field of the response.
unverified_countNoThe `unverified_count` field of the response.
verifiedEvidenceNoThe `verifiedEvidence` field of the response.
verified_evidenceNoThe `verified_evidence` field of the response.
methodologyVersionNoThe `methodologyVersion` field of the response.
operator_signatureNoThe `operator_signature` field of the response.
wallet_attestationNoThe `wallet_attestation` field of the response.
methodology_versionNoVersion of the method that produced the answer.
signature_algorithmNoThe `signature_algorithm` field of the response.
default_validity_daysNoThe `default_validity_days` field of the response.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed61 schema fields changed
    • addedOutput schema / properties / agentId
      Added value: +{
      +  "description": "The `agentId` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / agent_card
      Added value: +{
      +  "description": "The `agent_card` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / agent_id
      Added value: +{
      +  "description": "The `agent_id` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / assurance
      Added value: +{
      +  "description": "The `assurance` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / assurance_levels
      Added value: +{
      +  "description": "The `assurance_levels` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / attested
      Added value: +{
      +  "description": "The `attested` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / bindingId
      Added value: +{
      +  "description": "The `bindingId` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / binding_id
      Added value: +{
      +  "description": "The `binding_id` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / canonicalization
      Added value: +{
      +  "description": "The canonicalisation rule the digest was computed under.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / chain
      Added value: +{
      +  "description": "The `chain` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / chain_proof
      Added value: +{
      +  "description": "The `chain_proof` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / clock
      Added value: +{
      +  "description": "The `clock` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / coverage_gaps
      Added value: +{
      +  "description": "The `coverage_gaps` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / declared
      Added value: +{
      +  "description": "The `declared` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / default_validity_days
      Added value: +{
      +  "description": "The `default_validity_days` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / evidenceKinds
      Added value: +{
      +  "description": "The `evidenceKinds` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / evidence_checks
      Added value: +{
      +  "description": "The `evidence_checks` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / evidence_core
      Added value: +{
      +  "description": "The canonical, signed core of the answer — the payload the signature covers.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / evidence_count
      Added value: +{
      +  "description": "The `evidence_count` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / evidence_kinds
      Added value: +{
      +  "description": "The `evidence_kinds` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / expiresAt
      Added value: +{
      +  "description": "The `expiresAt` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / expires_at
      Added value: +{
      +  "description": "The `expires_at` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / index
      Added value: +{
      +  "description": "The `index` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / issuedAt
      Added value: +{
      +  "description": "The `issuedAt` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / issued_at
      Added value: +{
      +  "description": "The `issued_at` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / key_id
      Added value: +{
      +  "description": "The `key_id` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / kind
      Added value: +{
      +  "description": "The `kind` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / llm
      Added value: +{
      +  "description": "The `llm` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / methodology
      Added value: +{
      +  "description": "The `methodology` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / methodologyVersion
      Added value: +{
      +  "description": "The `methodologyVersion` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / methodology_version
      Added value: +{
      +  "description": "Version of the method that produced the answer.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / missing_fields
      Added value: +{
      +  "description": "The `missing_fields` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / operator
      Added value: +{
      +  "description": "The `operator` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / operator_signature
      Added value: +{
      +  "description": "The `operator_signature` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / output_sha256
      Added value: +{
      +  "description": "SHA-256 hex digest of the canonical evidence core.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / profile
      Added value: +{
      +  "description": "The `profile` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / profileVersion
      Added value: +{
      +  "description": "Version of the answer profile.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / profile_version
      Added value: +{
      +  "description": "Version of the answer profile.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / public_key
      Added value: +{
      +  "description": "The `public_key` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / reason
      Added value: +{
      +  "description": "Why the verdict was reached.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / registration
      Added value: +{
      +  "description": "The `registration` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / self_declaration
      Added value: +{
      +  "description": "The `self_declaration` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / signature
      Added value: +{
      +  "description": "The Ed25519 signature over the evidence core, base64-encoded.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / signature_algorithm
      Added value: +{
      +  "description": "The `signature_algorithm` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / signed_by
      Added value: +{
      +  "description": "The key id that signed the answer.",
      +  "type": "string"
      +}
    • removedOutput schema / properties / status
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / unverified
      Added value: +{
      +  "description": "The `unverified` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / unverified_count
      Added value: +{
      +  "description": "The `unverified_count` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / valid_from
      Added value: +{
      +  "description": "The `valid_from` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / validityDays
      Added value: +{
      +  "description": "The `validityDays` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / validity_days
      Added value: +{
      +  "description": "The `validity_days` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / value
      Added value: +{
      +  "description": "The `value` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / verdict
      Added value: +{
      +  "description": "The decision this tool returned.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / verdicts
      Added value: +{
      +  "description": "The `verdicts` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / verified
      Added value: +{
      +  "description": "The `verified` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / verifiedEvidence
      Added value: +{
      +  "description": "The `verifiedEvidence` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / verified_count
      Added value: +{
      +  "description": "The `verified_count` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / verified_evidence
      Added value: +{
      +  "description": "The `verified_evidence` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / wallet
      Added value: +{
      +  "description": "The `wallet` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / wallet_attestation
      Added value: +{
      +  "description": "The `wallet_attestation` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / required
      Added value: +[
      +  "evidence_core",
      +  "output_sha256",
      +  "signature",
      +  "verdict"
      +]
  2. Added

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, so the safety profile is carried structurally. The description adds genuinely useful context beyond that in the $1 USDC cost per call. However, it never explains why the call is destructive (what a failed or repeated attestation does to existing state), and the 'object with 59 fields' note is largely redundant given an output schema exists.

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

Conciseness3/5

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

Front-loads the purpose in the first sentence, which is good, but the remainder is a run-on with inconsistent casing and a dangling '$1 USDC.' fragment. The '59 fields' detail is lower-value than the cost and competes for attention.

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

Completeness3/5

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

With an output schema present, the description needn't describe returns, yet it partially does while omitting more important gaps: what evidence is required, what the destructive behavior means, and how validity/expiry should be set. Adequate but leaves real operational questions unanswered for a destructive, paid mutation.

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 all seven parameters are documented in the schema and the baseline is 3. The description does not clarify the more ambiguous ones such as validity_days vs valid_from semantics, or what constitutes acceptable evidence. Its mention of agentId/agent_card refers to the response shape, not inputs.

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

Purpose4/5

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

States a concrete action and resource: bind an agent to its operator and wallet, i.e. an identity attestation. It also names the sibling it is meant to be preferred over (create_control_proof), so an agent can disambiguate without opening the schema. 'Bind' is slightly abstract but the tool name plus the distinction makes the purpose unambiguous.

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?

Provides an explicit routing rule: use this rather than create_control_proof for identity attestation, not control proof. That is a real when-to-use signal against a sibling. It does not state prerequisites (e.g. whether the agent or operator must already exist) or when-not to use it at all.

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.