Skip to main content
Glama

confirm_purchase

[BUY, Step 2] Complete the purchase by submitting the signed EIP-712 permit from initiate_purchase. Mints the ERC-1155 NFT on-chain (gasless, platform covers gas) and returns a download link. For physical products you MUST include: shipping_name, shipping_address_line1, shipping_city, shipping_postal_code, shipping_country, shipping_phone, and buyerEmail. shipping_phone is required for delivery confirmation. buyerEmail is required so the buyer receives their order confirmation. The response includes revenue split details.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tokenIdYesToken ID of the listing
deadlineYesPermit deadline (Unix timestamp string from initiate_purchase)
ref_codeNoAffiliate ref code, if you are buying through another agent's product referral link. The promoter earns commission on this sale; you pay the same price.
signatureYesEIP-712 signature from wallet.signTypedData
buyerEmailNoEmail for order confirmation and file delivery. Required for physical products, buyer will not receive an order confirmation without it.
buyerWalletYesBuyer 0x wallet address
selected_sizeNoFor sized products, the size you chose at initiate_purchase. MUST match the size whose price was used to build the permit.
shipping_cityNoCity (required for physical products)
shipping_nameNoRecipient name (required for physical products)
selected_colorNoFor products with a colour axis, the colourway you chose at initiate_purchase. MUST match the colour whose price was used to build the permit; recorded on the order so fulfillment ships the right finish.
shipping_phoneNoPhone number (required for physical products, needed for delivery confirmation)
shipping_stateNoState or province
shipping_countryNoCountry (required for physical products)
shipping_postal_codeNoPostal/ZIP code (required for physical products)
shipping_address_line1NoStreet address line 1 (required for physical products)
shipping_address_line2NoStreet address line 2

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / ref_code
      Added value: +{
      +  "description": "Affiliate ref code, if you are buying through another agent's product referral link. The promoter earns commission on this sale; you pay the same price.",
      +  "type": "string"
      +}
  2. Changed2 schema fields changed
    • changedInput schema / properties / buyerEmail / description
      Previous value: -"Email for order confirmation and file delivery. Required for physical products — buyer will not receive an order confirmation without it."New value: +"Email for order confirmation and file delivery. Required for physical products, buyer will not receive an order confirmation without it."
    • changedInput schema / properties / shipping_phone / description
      Previous value: -"Phone number (required for physical products — needed for delivery confirmation)"New value: +"Phone number (required for physical products, needed for delivery confirmation)"
  3. Changed1 schema field changed
    • addedInput schema / properties / selected_color
      Added value: +{
      +  "description": "For products with a colour axis, the colourway you chose at initiate_purchase. MUST match the colour whose price was used to build the permit; recorded on the order so fulfillment ships the right finish.",
      +  "type": "string"
      +}
  4. Changed2 schema fields changed
    • changedInput schema / properties / buyerEmail / description
      Previous value: -"Optional email for file delivery"New value: +"Email for order confirmation and file delivery. Required for physical products — buyer will not receive an order confirmation without it."
    • changedInput schema / properties / shipping_phone / description
      Previous value: -"Phone number for shipping"New value: +"Phone number (required for physical products — needed for delivery confirmation)"
  5. Changed1 schema field changed
    • addedInput schema / properties / selected_size
      Added value: +{
      +  "description": "For sized products, the size you chose at initiate_purchase. MUST match the size whose price was used to build the permit.",
      +  "type": "string"
      +}
  6. Changed1 schema field changed
    • changedInput schema / properties / tokenId / description
      Previous value: -"Token ID of the drop"New value: +"Token ID of the listing"
  7. First observed

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and discloses key behaviors: mints an NFT on-chain, gasless (platform covers gas), returns a download link, and includes revenue split details. It does not mention irreversibility or failure modes, but it covers the main side effects and prerequisites well.

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?

The description is appropriately sized and front-loaded with the main purpose. Each sentence adds useful context (physical requirements, phone/email rationale, revenue split). It is not overly verbose, and the structure with '[BUY, Step 2]' provides immediate orientation.

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

Completeness4/5

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

Given the tool's complexity (16 params, no output schema), the description covers the essential context: the prerequisite permit, gasless minting, return value (download link), revenue split, and the critical distinction between physical and digital products. It does not explain every optional parameter, but the schema already does that, so the description is sufficient for an agent to invoke 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 100%, so the baseline is 3. The description adds value beyond the schema by explicitly listing the required physical-product shipping fields, explaining why shipping_phone and buyerEmail are required, and noting that ref_code does not change the price. This helps the agent select and validate parameters correctly.

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?

The description states a specific verb ('Complete the purchase', 'Mints the ERC-1155 NFT') with a clear resource and workflow step ('[BUY, Step 2]'). It explicitly references initiate_purchase as the prerequisite, distinguishing it from the sibling confirm_agent_purchase and making its role 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?

The description clearly indicates this is the second step after initiate_purchase and provides explicit conditions for physical products ('you MUST include...'). However, it does not explicitly mention when NOT to use this tool (e.g., for agent purchases use confirm_agent_purchase), so it lacks an explicit exclusion statement.

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.