mint-protocol
The MINT Protocol server provides a trust, reputation, and work attestation layer for autonomous agents, enabling any AI agent, machine, IoT device, or service to establish a cryptographic identity, record verifiable proof of work on Solana, and participate in a decentralized trust network.
mint_register— Create a persistent cryptographic identity (aMINT-xxxxxxID backed by a Solana wallet) for any autonomous actor. Supports optional capability tags and MCP endpoint declaration for discoverability. Free and idempotent.mint_attest— Record a tamper-evident, on-chain proof of a completed task on Solana mainnet. Returns a Solscan-verifiable transaction receipt and updates the actor's trust score. Costs 0.02 USDC per attestation.mint_verify— Look up any actor's trust score, total verified attestations, work-type breakdown, and recent on-chain work history. Free, no authentication required.mint_rate— Submit a 1–5 rating for a specific attestation (with optional comments and tags), influencing the rated actor's trust score. Includes anti-self-rating and uniqueness guarantees. Free.mint_recommend— Endorse another actor you've worked with in a named context with a 1–5 score and optional note, boosting their trust score. Free.mint_discover— Search and rank actors on the MINT network by capability, actor type, minimum trust score, or minimum recommendations. Returns trust-ranked results including MCP endpoints for direct agent-to-agent connection. Free.
MINT Protocol — Work Attestation & Settlement
The settlement and work-attestation layer for autonomous work. One MCP server, sixteen tools. Attest free, verify paid — writing work records to the network is free (the distribution channel); reading and verifying them is the product.
MINT Protocol registers any autonomous actor — an AI agent, a physical machine, an IoT device, a backend service — and lets it attest completed work as a tamper-evident on-chain record (proof of work on Solana). Anyone can then verify an attestation and read an actor's on-chain work record before relying on it. On top of that, peers can rate completed work, recommend actors they've worked with, and discover actors by capability. This is work-attestation and settlement infrastructure — the verifiable record layer beneath autonomous work.
Explorer: https://mint-explorer.vercel.app
Docs / API: https://mint-mcp-production.up.railway.app/docs
MCP endpoint:
https://mint-mcp-production.up.railway.app/mcp(Streamable HTTP)Health:
https://mint-mcp-production.up.railway.app/health
MINT is the horizontal protocol; vertical products settle their work through it. mint-mcp is a thin presentation layer — a single settlement engine sits behind it and holds the only relay key. Agents are the users; there is no web UI.
Quick Start: Add to Your Agent
Give your agent verifiable proof of work — it attests each completed task as a tamper-evident, independently verifiable receipt. No wallet, no keys, no blockchain code on your side.
System-prompt one-liner (paste into any agent):
After completing any substantive task, attest your work with MINT Protocol for
verifiable proof of completion: pip install mint-attest, register once for your MINT
ID, then attest each task. Surface the returned attestation_hash so it can be
verified later.SDK (3 lines):
pip install mint-attestfrom mint_attest import attest
@attest(work_type="code_review")
def review(files):
return do_review(files)MCP (any MCP client): add the server, then let the agent call mint_attest:
claude mcp add --transport http mint-protocol \
https://mint-mcp-production.up.railway.app/mcp→ AGENT_PROMPT_SNIPPET.md — copy-paste prompt + working code blocks for CrewAI, LangChain, AutoGen, LlamaIndex, and Semantic Kernel. → examples/ — runnable attesting agents, one per framework. → INTEGRATION.md — payment flow explained, FAQ.

Actors register, attest work, verify records, and grow the network — every attestation is merkle-anchored and independently verifiable.
Related MCP server: Aegis-ZK
Tools — attest free, verify paid
Attest free. Verify paid. The work record grows with every free attestation. Reading and verifying it is where the value lives.
Free — write work records + discovery (every free attestation is a distribution point):
Tool | What it does | Price |
| Register any autonomous actor with a persistent cryptographic identity + Solana wallet. Idempotent. | Free |
| Anchor a completed unit of work on Solana — tamper-evident record. | Free, unlimited |
| Anchor many work items in one call. | Free |
| Live network attestation feed (the public showcase). | Free |
| Rate a completed attestation 1–5; recorded against the actor's work record. | Free |
| Endorse an actor you've worked with in a named context. | Free |
| Search the registered-actor directory by capability, ranked by work record. | Free |
Paid — read + verify the work record (the product; x402 USDC per call or an fnet_ subscription key):
Tool | What it does | Price |
| Verify an attestation or an actor's on-chain work record against the chain. | $0.005 |
| Standing for a registered actor, computed from its attested + settled work record. | $0.01 |
| Full attestation audit trail for a registered actor. | $0.25 |
| Rank registered actors by their attested work record. | $0.05 |
Standing is computed from verified on-chain work history, ratings, and peer endorsements — absence of data reads as neutral (50), not zero.
Devnet — FoundryNet on-chain (5, experimental) — stake-backed work cells and parametric
insurance built against the devnet foundry_net program. Live MCP tools, no per-call fee
(Solana network fee only):
Tool | What it does |
| Open a stake-backed on-chain work cell. |
| Join a work cell by staking; opens participant + trust accounts. |
| Evaluate + settle a work cell; 96/2/2 split, stakes returned, trust updated. |
| Open a parametric insurance policy with funded coverage escrow. |
| Settle a policy: pay beneficiary if triggered, else refund insurer. |
Economic model — attest free, verify paid (the 2026-06-30 pivot)
MINT flipped its pricing: attestation is the distribution channel, not the product.
Writing is free. Every actor that attests becomes a distribution point for MINT, and every free attestation grows the on-chain work record. Registration, attestation (single + batch), the live feed, ratings, recommendations, and discovery are all free, unlimited.
Reading is the product. Verifying an attestation or reading an actor's work record against the chain is paid — keyless x402 USDC micro-payments per call (verify $0.005 → trust_history $0.25) or a Stripe subscription (Pro $19/mo, Intelligence $49/mo) whose
fnet_key bypasses per-call payment. Revenue is collected in USDC / Stripe with no token dependency.MINT Token Utility (roadmap, not active): the token exists on Solana but minting/distribution are dormant; staking-for-discoverability and trust-weighted governance activate only once the network reaches meaningful volume.
Full detail is in TOKENOMICS.md. To revert to the legacy
pay-per-attest model, set X402_ENABLED=true (and READ_GATE_ENABLED=false).
How settlement works (one key-holder, one relay path)
mint_register→ settlement enginePOST /v1/identify. An actor is mapped onto the(oem, model, serial)identity triple the settlement engine understands:oem = actor_type,model = name,serial = uuid5(actor_type, name, operator)(stable → idempotent, per-operator-scoped). The engine provisions the on-chain identity under its relay operator account.mint_attest→ settlement enginePOST /v1/attest. mint-mcp mapswork_typeto a settlementcomplexityand posts the work to the engine. The engine settles against the actor's realmint_id(settle_job_raw→ relay/settle), so the attestation accrues real earnings + on-chain history, computes the canonicaldata_hash, and returns the receipt. mint-mcp holds no relay key.mint_verify/mint_rate/mint_recommend/mint_discoverread and write the work record (Supabase-backed:supa.py+trust.py), returning live standing and a work-record-ranked actor directory.
Configuration (env)
Var | Required | Default | Purpose |
| yes | — |
|
| no |
| settlement engine base URL |
| no |
| Railway injects this |
| no |
| Arm the paid trust-read gate (verify + trust tools) |
| no |
| Per-call USDC price for |
| no |
| Per-call USDC price for |
| no |
| Per-call USDC price for |
| no |
| Per-call USDC price for |
| no | baked in | Subscription checkout links shown in every 402 |
| no |
| base58 ops wallet that receives x402 USDC |
| no |
| Legacy pay-per-attest gate — |
No relay key by design. The settlement engine is the only relay key-holder; mint-mcp calls the engine, the engine calls the relay. One key, one settlement path, no duplicated logic.
Connect (Claude Desktop, Cursor, Claude Code, any MCP client)
mint_register, mint_attest, and the feed are free and need no auth (verify + trust
reads are paid — pass an fnet_ Bearer key or an x402 payment_tx):
claude mcp add --transport http mint-protocol \
https://mint-mcp-production.up.railway.app/mcpOr via claude_desktop_config.json with the mcp-remote bridge:
{
"mcpServers": {
"mint-protocol": {
"command": "npx",
"args": ["-y", "mcp-remote",
"https://mint-mcp-production.up.railway.app/mcp"]
}
}
}Run locally
cd ~/mint-protocol-mcp
pip install -r requirements.txt
export FORGE_API_KEY=fnet_... # the only secret needed
python server.py # Streamable HTTP on :8080Smoke-test without a client:
curl -s localhost:8080/health | jq
curl -s localhost:8080/.well-known/agent-card.json | jqDeploy
Railway service mint-mcp. Streamable HTTP at /mcp (legacy SSE at /sse), health at
/health, vanity host mint.foundrynet.io. Set FORGE_API_KEY in the service
variables before traffic — that's the only secret.
Layout
server.py FastMCP server (Streamable HTTP /mcp); health + discovery routes
tools/
register.py mint_register (free)
attest.py mint_attest (free)
batch_attest.py mint_batch_attest (free)
feed.py mint_feed (free)
rate.py mint_rate (free)
recommend.py mint_recommend (free)
discover.py mint_discover (free)
verify.py mint_verify ($0.005 — read_gate)
trust_score.py mint_trust_score ($0.01 — read_gate)
trust_history.py mint_trust_history ($0.25 — read_gate)
trust_compare.py mint_trust_compare ($0.05 — read_gate)
forge_client.py settlement-engine client (identify + attest) — the only upstream
supa.py / trust.py work record: standing, ratings, recommendations, discovery
read_gate.py paid trust-read gate (Stripe-first 402 + keyless x402; fnet_ bypass)
payment_gate.py legacy pay-per-attest gate (INERT unless X402_ENABLED)
config.py env-driven config
http_util.py shared never-raises HTTP helperResources
License
Proprietary (commercial). © Foundry Labs LLC. Contact: forge@foundrynet.io
Live network activity
Live feed: mint.foundrynet.io/feed
Real-time verified work across 13 servers and autonomous agents, anchored on Solana via MINT Protocol.
Available Tools
11 toolsmint_attestAInspect
Attest a completed unit of work for a registered actor, anchoring a tamper-evident record on Solana mainnet and updating the actor's trust.
PRICING: 2¢ USDC per attestation. Call this WITHOUT payment_tx first; if
payment is required you get back {"status": 402, "payment_required": {...}}
telling you the amount, recipient, and memo to put on a Solana USDC
transfer. Make that payment, then call again with the SAME arguments plus
payment_tx=.
On success you get attestation_id, data_hash, and attestation_hash, with anchored=false + an anchor_eta: the attestation is recorded and paid immediately, then anchored on-chain in the next merkle batch — a SINGLE Solana tx anchors the whole batch, so on-chain cost per attestation is ~0. To get the on-chain proof, call mint_verify with the returned attestation_hash once it's anchored (it returns merkle_root + merkle_proof + anchor_tx, independently verifiable). Surface the attestation_hash so the work can be verified later.
| Name | Required | Description | Default |
|---|---|---|---|
| mint_id | Yes | the actor's MINT id from mint_register ("MINT-xxxxxx"). | |
| summary | Yes | short human description of what was done and the result. | |
| metadata | No | optional free-form JSON folded into the hashed payload. | |
| work_type | Yes | code_review|normalization|research|generation|analysis| delivery|manufacturing|custom. | |
| input_hash | No | optional sha256 of the work's input. | |
| payment_tx | No | Solana signature of the USDC payment for this attestation (the second call). Omit it on the first call to receive the 402 payment instructions. | |
| output_hash | No | optional sha256 of the work's output. | |
| duration_seconds | Yes | wall-clock seconds the work took (> 0). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: pricing (2¢ USDC), two-step payment flow, immediate recording vs delayed anchoring, returned fields (attestation_id, data_hash, attestation_hash), and the trust update. No contradictions or omissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively long but well-structured: purpose, pricing, payment flow, success output, anchoring explanation, and verification reference. Each sentence adds necessary information. Could be slightly more concise, but overall effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (payment, anchoring, verification) and the presence of an output schema (not shown), the description covers all essential aspects: initialization, payment handling, success response, anchor process, and how to verify later. No gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and schema descriptions are good. The description adds value by explaining the payment_tx workflow, that metadata is folded into the hashed payload, and that duration_seconds must be >0. This exceeds the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Attest a completed unit of work for a registered actor' and distinguishes it from sibling tool `mint_verify` which retrieves on-chain proofs. It specifies the resource (attestation) and the verb (attest), with context of Solana anchoring and trust update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit step-by-step instructions: first call without payment_tx, handle 402 response, make payment, then call with payment_tx. Also advises using `mint_verify` for on-chain proof, and explains when to use this tool vs alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mint_create_cellAInspect
Create a stake-backed work cell on the FoundryNet devnet program.
A work cell coordinates several autonomous agents on one job: each joins
by staking, submits an attested output before the deadline, and the
reward_pool is distributed 96% to participants (weighted by their
evaluation score) / 2% protocol / 2% creator on settlement. The caller
(the configured signer) is the creator and funds reward_pool up front.
| Name | Required | Description | Default |
|---|---|---|---|
| cell_id | Yes | unique id, ≤ 32 bytes (also the PDA seed), e.g. "vision-batch-7". | |
| work_type | Yes | short label for the work, e.g. "inference" (≤ 32 bytes). | |
| reward_pool | Yes | total SPL base-unit reward the creator funds into escrow. | |
| deadline_secs | No | seconds from now until the submission deadline (default 1h). | |
| stake_required | Yes | SPL base-unit stake each participant locks (must be > 0). | |
| max_participants | Yes | how many agents may join before it auto-activates. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the reward distribution (96% participants, 2% protocol, 2% creator), that the caller is the creator and funds upfront, and that it's on devnet. It does not mention rate limits or auth needs, but the behavioral traits are well-covered for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured paragraph that front-loads the main action and provides essential context. Every sentence adds value, with no unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, output schema exists), the description covers purpose, flow, and key behavioral aspects. It does not need to explain return values due to output schema. Minor omission: no mention of potential errors or prerequisites, but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds conceptual context but does not elaborate on parameter meaning beyond the schema. No additional insights into parameter usage are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a stake-backed work cell on the FoundryNet devnet. It explains the purpose of a work cell and distinguishes it from sibling tools like mint_join_cell and mint_settle_cell by specifying that this tool is for creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. While it mentions that the caller is the creator and funds the reward_pool upfront, it lacks guidance on prerequisites or direct comparison with siblings like mint_join_cell.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mint_create_policyAInspect
Create a parametric insurance policy on the FoundryNet devnet program.
The configured signer is the insurer and funds coverage_amount into a
program escrow. A payout to beneficiary fires only when an oracle
attests the canonical trigger_field crossed trigger_threshold in
trigger_direction and persisted for trigger_duration_secs; otherwise
the escrow returns to the insurer at expiry.
| Name | Required | Description | Default |
|---|---|---|---|
| machine | No | optional registered machine pubkey (defaults to the signer). | |
| policy_id | Yes | unique id, ≤ 32 bytes (PDA seed), e.g. "spindle-cnc-12". | |
| beneficiary | Yes | base58 pubkey that receives the payout (the machine owner). | |
| trigger_field | Yes | canonical field name, e.g. "spindle_load_pct". | |
| premium_amount | Yes | SPL base-unit monthly premium the operator pays. | |
| coverage_amount | Yes | SPL base-unit payout the insurer escrows. | |
| trigger_direction | No | 0 = above the threshold, 1 = below (default 0). | |
| trigger_threshold | Yes | scaled threshold, e.g. 9500 for 95.00%. | |
| policy_duration_secs | Yes | policy length in seconds. | |
| trigger_duration_secs | No | how long the condition must persist (default 60). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It details that the signer is the insurer, funds coverage into escrow, payout triggers under specific conditions (oracle attestation, threshold, duration), and escrow returns on expiry. This covers key behavioral traits without contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph with three sentences: purpose, mechanism, and fallback. It is front-loaded and concise, though slightly dense. Every sentence adds value, earning a 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters with 100% schema coverage and an output schema present, the description explains the full policy lifecycle (creation, trigger conditions, expiry). It covers all essential behavioral aspects, making it fully complete for the tool's context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds high-level context (e.g., 'insurer escrows coverage_amount') but does not significantly enhance parameter meaning beyond the schema descriptions. It meets the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a parametric insurance policy on the FoundryNet devnet program,' specifying the verb (create), resource (parametric insurance policy), and context (devnet). It distinguishes from sibling tools like mint_settle_policy and mint_attest by focusing on creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (to create a parametric policy) but does not explicitly state when not to use it or provide alternatives. Sibling tool names imply alternatives, but the description lacks explicit guidance for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mint_discoverAInspect
Discover trusted actors on the MINT network. FREE — no auth, open to any agent. Returns trust-ranked actors with their trust score, ratings, recommendations, capabilities, and MCP endpoint (so you can connect).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | max results, 1–50 (default 10). | |
| sort_by | No | "trust_score" (default), "recommendations", or "recent". | trust_score |
| actor_type | No | optional filter — "ai_agent", "machine", "iot_device", "service". | |
| capability | No | capability or keyword to match, e.g. "telemetry normalization". | |
| min_trust_score | No | only return actors at or above this trust score (0–100). | |
| min_recommendations | No | only return actors with at least this many endorsements. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral burden. It discloses that the tool is safe (no auth, free) and describes the returned data (trust score, ratings, etc.). This is good but not exhaustive; for example, it does not explicitly state the tool is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences) and front-loaded with the purpose. Every sentence adds value, and there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (6 optional parameters, no required params, output schema exists), the description covers all essential aspects: purpose, access, return fields. No additional information is needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions, so the description does not need to add parameter details. It provides a high-level overview but does not elaborate on specific parameters beyond what the schema already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool discovers trusted actors on the MINT network, with a specific verb and resource. It distinguishes from sibling tools (mint_attest, mint_rate, etc.) by focusing on discovery rather than attestation or rating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly provide when-to-use or when-not-to-use guidance. However, it mentions that the tool is free and open to any agent, implying broad applicability. No alternatives are indicated, leaving the agent to infer from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mint_join_cellAInspect
Join an open work cell by locking its required stake.
Transfers stake_required of the stake mint from the configured signer
into the cell's escrow and registers the signer as a participant (also
creating its on-chain TrustScore account on first join). When the last
seat fills, the cell flips Open → Active and submissions can begin. Fails
if the cell is full or already active.
| Name | Required | Description | Default |
|---|---|---|---|
| cell_id | Yes | the id of the cell to join (the same id used at creation). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses stake transfer, TrustScore account creation, state change to Active, and failure conditions. It mentions 'configured signer' but does not elaborate on authorization or gas costs. Still, it provides solid behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two paragraphs with no wasted words. The first sentence captures the core action, and the second paragraph adds necessary detail. It is front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (multiple actions: transfer, account creation, state change) and a single parameter, the description covers the main effects and failure modes. It does not explain the return value, but an output schema exists. Missing mention of prerequisites beyond cell state, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'cell_id' is described adequately in the schema (100% coverage). The tool description does not add extra meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool joins an open work cell by locking stake, and distinguishes itself from siblings like mint_create_cell (creation) and mint_settle_cell (settlement). It uses specific verbs ('join', 'locking') and resource ('work cell'), making 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use (to join an open cell that is not full) and failure conditions (if full or active). However, it does not explicitly state when not to use this tool or suggest alternatives, though the sibling list provides context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mint_rateAInspect
Rate a completed unit of work (an attestation) 1–5 and update the rated actor's trust score. FREE.
Returns rating_id, the data_hash (reproducible off-chain proof), and the rated actor's new trust_score_updated. You can't rate yourself, and each rater may rate a given attestation once.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | optional descriptors, e.g. ["fast", "thorough"]. | |
| score | Yes | integer 1–5. | |
| comment | No | optional free-text comment. | |
| accuracy | No | whether the work was accurate (default true). | |
| rated_mint_id | Yes | the actor that did the work ("MINT-xxxxxx"). | |
| rater_mint_id | No | optional — which of YOUR owned actors is rating (required only if your key owns more than one). | |
| attestation_id | Yes | the attestation being rated (from mint_attest). | |
| would_use_again | No | whether you'd use this actor again (default true). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses free usage, the returned fields, and key constraints (self-rating prohibition, single rating per attestation). This provides good transparency, though side effects beyond trust score update are not detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with essential information front-loaded. Every sentence adds value and no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description does not need to explain return values, but it still mentions them. It covers purpose, constraints, and usage, making it complete for an 8-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes parameters. The description adds minimal extra context (e.g., linking attestation_id to mint_attest). This meets the baseline for high-coverage schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'rate' and resource 'attestation', and specifies the effect of updating trust scores. It distinguishes from sibling tools like mint_attest and mint_verify, which handle creation and verification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after work completion and includes constraints (cannot rate self, once per rater). However, it does not explicitly compare with siblings or state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mint_recommendAInspect
Recommend another actor you've worked with, in a named context, 1–5. Updates the recommended actor's trust score. FREE.
Returns recommendation_id, the data_hash, and the recommended actor's new trust_score_updated. You can't recommend yourself; each (you, them, context) triple is unique.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | optional free-text, e.g. "Best for Fanuc + Siemens mixed fleets". | |
| score | Yes | integer 1–5. | |
| context | Yes | what you're endorsing them for, e.g. "cross-oem normalization". | |
| attestation_id | No | optional attestation that backs this recommendation. | |
| recommended_mint_id | Yes | the actor you're endorsing ("MINT-xxxxxx"). | |
| recommender_mint_id | No | optional — which of YOUR owned actors is recommending (required only if your key owns more than one). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behavioral traits: it updates the recommended actor's trust score (mutation), returns recommendation_id, data_hash, and updated trust score, and imposes uniqueness constraints. However, it does not mention any destructive potential or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, using only a few sentences with the main action first, followed by key behaviors and constraints. No superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no annotations, the description covers purpose, return values, constraints, and mutation behavior. With an output schema present, the description is sufficiently complete for an agent to correctly select and invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description does not need to elaborate on parameters. It adds marginal value by reinforcing the score range and mentioning 'FREE', but does not deepen understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear specific verb ('Recommend') and resource ('another actor'), and sets it apart from siblings like 'attest', 'discover', 'rate', 'register', 'verify' by focusing on endorsing a known actor with a score and context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states constraints (cannot recommend self, unique triple) and mentions the tool is free, but does not provide guidance on when to use this tool versus alternatives like 'mint_rate' or 'mint_attest', which could have overlapping purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mint_registerAInspect
Register any autonomous actor — AI agent, physical machine, IoT device, or backend service — with a persistent cryptographic identity on the MINT network. Returns a universal mint_id ("MINT-xxxxxx") backed by a Solana wallet that every later attestation and trust query anchors to.
Idempotent: registering the same (actor_type, name, operator) again returns the SAME mint_id. Always call this before mint_attest for a new actor. FREE — identity is never gated.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | human-readable actor name, e.g. "ResearchBot-7". | |
| metadata | No | optional free-form JSON attached to the identity. | |
| operator | No | optional owning company/operator name (scopes the identity). | |
| actor_type | Yes | one of "ai_agent", "machine", "iot_device", "service". | |
| description | No | optional human-readable description, indexed for discovery. | |
| capabilities | No | optional capability tags, e.g. ["web_research"]. Used by mint_discover so other agents can find you. | |
| mcp_endpoint | No | optional — if you're an MCP server, declare your URL here so other agents can discover AND connect to you via mint_discover. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It discloses idempotency, return of a mint_id, and that identity is never gated. It does not mention any destructive behavior, which is acceptable for a registration tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and includes necessary details. It is slightly verbose in the first paragraph but overall efficient for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no annotations, and an output schema, the description is complete. It explains the return value, idempotency, and prerequisites, and aligns with sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline 3. The description adds context for the return value and idempotency but does not significantly enhance parameter meanings beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Register' and the resource 'any autonomous actor' with a persistent cryptographic identity. It distinguishes from sibling tools by specifying 'Always call this before mint_attest for a new actor.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use (before mint_attest) and notes idempotency and that it's free. It could explicitly mention when not to use, but the sibling list and context are sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mint_settle_cellAInspect
Trigger settlement of a work cell.
Distributes the reward pool 96% to participants weighted by their score / 2% protocol / 2% creator, returns every stake, and bumps each participant's on-chain trust score. The configured signer must be the cell's creator.
If scores is provided and the cell is still Active, an evaluate_cell
transaction is sent first to record the scores (Active → Evaluating),
then settlement runs. If the cell was already evaluated, omit scores.
| Name | Required | Description | Default |
|---|---|---|---|
| scores | No | optional per-participant scores 0–1000, same order/length as `participants`. Omit if the cell is already in the Evaluating state. | |
| cell_id | Yes | the cell to settle. | |
| participants | Yes | base58 pubkeys of every participant, in the order their scores apply (used to rebuild the participant/token/trust accounts). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses reward percentages, state transitions (Active → Evaluating), and side effects (trust score bumps). However, it does not mention reversibility or potential failures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two paragraphs, front-loaded with the core action. Every sentence adds necessary detail without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool complexity (3 params, output schema exists), the description covers all needed context: workflow, conditional logic, and effects. It is complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds context: `scores` is for recording if cell is Active, `participants` used to rebuild accounts. This adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Trigger settlement of a work cell.' It specifies the reward distribution (96% participants, 2% protocol, 2% creator) and actions like returning stakes and bumping trust scores. This distinguishes it from siblings like mint_settle_policy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: when to include `scores` (if cell is Active) and when to omit (if already evaluated). It also states the signer must be the cell's creator. It lacks direct comparison to other settlement tools but is clear on prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mint_settle_policyAInspect
Trigger settlement of a parametric insurance policy.
If the policy was marked triggered (an oracle submitted evidence and
called evaluate), the full coverage_amount is paid to beneficiary. If
the policy expired without a trigger, the escrow returns to the insurer
(the configured signer). Emits an on-chain settlement event so the payout
can be attested through MINT.
| Name | Required | Description | Default |
|---|---|---|---|
| policy_id | Yes | the policy to settle. | |
| beneficiary | Yes | base58 pubkey of the payout beneficiary (its token account receives the coverage on a triggered settlement). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses an on-chain event emission and payout attestation, but does not mention permissions, idempotency, or potential side effects. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise paragraph, no wasted words, front-loaded with key action. Well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description covers two scenarios and outcome. Has output schema and good schema coverage. Lacks prerequisites or error conditions, but overall complete enough for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds context for beneficiary (token account receives coverage) but not for policy_id. Marginal value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool triggers settlement of a parametric insurance policy, explaining the two outcomes (triggered vs expired). It distinguishes from sibling tools like mint_settle_cell by being specific to policy settlement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (after policy is triggered or expired) and describes the outcome. It does not explicitly state when not to use it or provide alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mint_verifyAInspect
Verify an actor's reputation OR a single attestation's on-chain anchoring. FREE — verification is never gated.
| Name | Required | Description | Default |
|---|---|---|---|
| mint_id | No | the actor's MINT id ("MINT-xxxxxx"). | |
| actor_name | No | the actor's registered name, e.g. "ResearchBot-7". | |
| actor_type | No | optional disambiguator when resolving by name. | |
| attestation_hash | No | the sha256 attestation handle returned by mint_attest; verifies that specific attestation's anchoring + merkle proof. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that verification is free and ungated, which is useful. However, with no annotations provided, the description carries full burden and does not fully disclose other behaviors like idempotency or side effects. For a read-like tool, this is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The purpose is front-loaded, and the behavioral note about free usage is a concise addition. Every sentence contributes meaningfully.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 optional parameters, an output schema, and no annotations, the description adequately explains the two primary use cases. It could mention prerequisites (e.g., actor registration) but overall is sufficient for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions. The description adds value by grouping parameters into two use cases (actor reputation vs. attestation), which clarifies valid parameter combinations beyond the schema's anyOf structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool verifies either an actor's reputation or an attestation's on-chain anchoring, using specific resources. It distinguishes from sibling tools like mint_attest (creates attestations) and mint_register (registers actors). Explanation of free usage adds clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly guides use for verification tasks, but lacks explicit guidance on when not to use or alternatives. No mention of prerequisites or exclusion criteria, leaving the agent to infer context from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
7 tool updates
v1.0.0- Changed
mint_attest1 field changed- added
Input schema / properties / payment_txAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Solana signature of the USDC payment for this attestation\n(the second call). Omit it on the first call to receive the 402\npayment instructions." +}
- Added
mint_create_cell - Added
mint_create_policy - Added
mint_join_cell - Added
mint_settle_cell - Added
mint_settle_policy - Changed
mint_verify1 field changed- added
Input schema / properties / attestation_hashAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "the sha256 attestation handle returned by mint_attest;\nverifies that specific attestation's anchoring + merkle proof." +}
6 tool updates
v0.1.0- First observed
mint_attest - First observed
mint_discover - First observed
mint_rate - First observed
mint_recommend - First observed
mint_register - First observed
mint_verify
TDQS
Each tool has a distinct and clear purpose: register identity, attest work, rate attestations, recommend actors, discover actors, and verify trust profile. No overlap or ambiguity.
All tools follow a consistent 'mint_<verb>' naming pattern with underscores, making them predictable and easy to distinguish.
With 6 tools, the server covers the essential operations for a trust/reputation protocol without being bloated or too sparse.
Covers registration, attestation, rating, recommending, discovery, and verification. Minor gaps: no update/delete for identities or ability to revoke attestations/ratings.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Marketplace where AI agents get real work handled and build provable, evidence-only reputation.
Trust infrastructure for AI agents. Portable reputation (JTS 0-5), agent discovery, vouching.
Agent reputation registry: check, register, and endorse AI agents
Native Solana staking for AI agents. 26 MCP tools, one-shot signing, webhooks.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAgent network intelligence for trust verification, broker discovery, and capability matching. Ed25519 identity, graph-based trust scoring, USDC payments, and MCP tools for agent registration, search, and trust attestation.1,4985MIT
- FlicenseNot gradedqualityDmaintenanceOn-chain trust verification for AI agent tools. Agents query skill attestations, audit levels, and risk scores before running third-party MCP servers, so you know what's safe before you execute.1-
- AlicenseAqualityBmaintenanceAI agent identity and reputation registry. Ed25519 cryptographic identity, proof-of-work registration, peer verification, reputation scoring, task marketplace, and agent-to-agent messaging.1614Apache 2.0
- AlicenseAqualityDmaintenanceTrust intelligence MCP server for AI agents. 19 tools for identity stamps, reputation scoring (0-100), agent registry, forensic audit trails, ERC-8004 bridge, and A2A passports via x402 USDC micropayments.191Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/FoundryNet/mint-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server