Proof primitive for AI agents on MultiversX. Anchor file hashes on-chain as verifiable proofs.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer API key (format: Bearer pm_xxx). Optional — x402 payment works without authentication.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Certify an AI agent's work session on the MultiversX blockchain before a critical action (trade, deploy, data access). Returns a proof_id that an operator can use in its own compliance policy. This tool records certification; whether a missing or failed certification blocks execution is an operator-implemented policy decision. Governance: set reversibility_class='irreversible' for actions that cannot be undone — a policy violation is flagged if confidence_level < 0.95 on irreversible decisions. Schema: https://provebeforeact.com/.well-known/agent-audit-schema.json
Identifier of the agent making the decision
Agent's decision about whether to proceed
ISO 8601 timestamp of when the decision was made
Assessed risk level of the action
Unique session identifier (UUID or timestamp-based)
Category of the action being certified
SHA-256 of all inputs analyzed before making the decision
Human-readable description of the specific action
Optional additional context (model version, environment, tool chain, etc.)
Optional brief risk analysis justifying the decision
Governance: how reversible is this action? 'reversible' = can be undone at low cost, 'costly' = reversible but expensive (fees, slippage, delay), 'irreversible' = cannot be undone (on-chain settlement, data deletion, email sent). When 'irreversible', a confidence_level >= 0.95 is required to be policy-compliant.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Certify an AI agent's work session on the MultiversX blockchain before a critical action (trade, deploy, data access). Returns a proof_id that an operator can use in its own compliance policy. This tool records certification; whether a missing or failed certification blocks execution is an operator-implemented policy decision. Governance: set reversibility_class='irreversible' for actions that cannot be undone — a policy violation is flagged if confidence_level < 0.95 on irreversible decisions. Schema: https://provebeforeact.com/.well-known/agent-audit-schema.json
| Argument | Type | Description |
|---|---|---|
| context | object | Optional additional context (model version, environment, tool chain, etc.) |
| agent_id* | string | Identifier of the agent making the decision |
| decision* | string | Agent's decision about whether to proceed |
| timestamp* | string | ISO 8601 timestamp of when the decision was made |
| risk_level* | string | Assessed risk level of the action |
| session_id* | string | Unique session identifier (UUID or timestamp-based) |
| action_type* | string | Category of the action being certified |
| inputs_hash* | string | SHA-256 of all inputs analyzed before making the decision |
| risk_summary | string | Optional brief risk analysis justifying the decision |
| action_description* | string | Human-readable description of the specific action |
| reversibility_class | string | Governance: how reversible is this action? 'reversible' = can be undone at low cost, 'costly' = reversible but expensive (fees, slippage, delay), 'irreversible' = cannot be undone (on-chain settlement, data deletion, email sent). When 'irreversible', a confidence_level >= 0.95 is required to be policy-compliant. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"agent_id",
"session_id",
"action_type",
"action_description",
"inputs_hash",
"risk_level",
"decision",
"timestamp"
],
"properties": {
"context": {
"type": "object",
"description": "Optional additional context (model version, environment, tool chain, etc.)",
"additionalProperties": {}
},
"agent_id": {
"type": "string",
"minLength": 1,
"description": "Identifier of the agent making the decision"
},
"decision": {
"enum": [
"approved",
"rejected",
"deferred"
],
"type": "string",
"description": "Agent's decision about whether to proceed"
},
"timestamp": {
"type": "string",
"description": "ISO 8601 timestamp of when the decision was made"
},
"risk_level": {
"enum": [
"low",
"medium",
"high",
"critical"
],
"type": "string",
"description": "Assessed risk level of the action"
},
"session_id": {
"type": "string",
"minLength": 1,
"description": "Unique session identifier (UUID or timestamp-based)"
},
"action_type": {
"enum": [
"trade_execution",
"code_deploy",
"data_access",
"content_generation",
"api_call",
"other"
],
"type": "string",
"description": "Category of the action being certified"
},
"inputs_hash": {
"type": "string",
"pattern": "^[a-fA-F0-9]+$",
"maxLength": 64,
"minLength": 64,
"description": "SHA-256 of all inputs analyzed before making the decision"
},
"risk_summary": {
"type": "string",
"description": "Optional brief risk analysis justifying the decision"
},
"action_description": {
"type": "string",
"minLength": 1,
"description": "Human-readable description of the specific action"
},
"reversibility_class": {
"enum": [
"reversible",
"costly",
"irreversible"
],
"type": "string",
"description": "Governance: how reversible is this action? 'reversible' = can be undone at low cost, 'costly' = reversible but expensive (fees, slippage, delay), 'irreversible' = cannot be undone (on-chain settlement, data deletion, email sent). When 'irreversible', a confidence_level >= 0.95 is required to be policy-compliant."
}
},
"additionalProperties": false
}Create a blockchain certification for a file. Records the SHA-256 hash on MultiversX blockchain as immutable proof of existence and ownership. Cost: $0.01 per certification, paid in EGLD.
| Argument | Type | Description |
|---|---|---|
| filename* | string | Original filename with extension (max 255 chars) |
| file_hash* | string | SHA-256 hash of the file (64 hex characters) |
| author_name | string | Name of the certifier (default: AI Agent, max 128 chars) |
| webhook_url | string | Optional HTTPS URL for on-chain confirmation callback |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"file_hash",
"filename"
],
"properties": {
"filename": {
"type": "string",
"maxLength": 255,
"minLength": 1,
"description": "Original filename with extension (max 255 chars)"
},
"file_hash": {
"type": "string",
"pattern": "^[a-fA-F0-9]+$",
"maxLength": 64,
"minLength": 64,
"description": "SHA-256 hash of the file (64 hex characters)"
},
"author_name": {
"type": "string",
"maxLength": 128,
"description": "Name of the certifier (default: AI Agent, max 128 chars)"
},
"webhook_url": {
"type": "string",
"format": "uri",
"description": "Optional HTTPS URL for on-chain confirmation callback"
}
},
"additionalProperties": false
}Create a staged blockchain certification with a confidence score. Use this when your decision builds progressively — certify at 60% (initial assessment), 80% (pre-commitment), and 100% (final decision). Each stage shares the same decision_id, creating an on-chain audit trail of the decision process. Governance: set reversibility_class='irreversible' for actions that cannot be undone — xproof will flag a policy violation if confidence_level < 0.95. Cost: $0.01 per certification.
| Argument | Type | Description |
|---|---|---|
| who | string | Agent identity (wallet address, name, or agent ID) |
| why | string | Reason or instruction hash driving this decision |
| filename* | string | Original filename with extension (e.g. decision.json, max 255 chars) |
| file_hash* | string | SHA-256 hash of the decision or output file (64 hex characters) |
| author_name | string | Name of the certifying agent (default: AI Agent, max 128 chars) |
| decision_id* | string | Shared UUID linking all confidence stages for the same decision. Generate once and reuse across all stages. |
| threshold_stage* | string | Named stage of the decision: initial (first assessment), partial (gathering info), pre-commitment (almost certain), final (committed). |
Check domain-specific attestations for an AI agent wallet on Prove Before Act. Returns active attestations issued by third-party certifying bodies (healthcare, finance, legal, security, research). Use the returned attestation data when assessing credentials before delegating a sensitive task.
| Argument | Type | Description |
|---|---|---|
| wallet* | string | MultiversX wallet address (erd1...) of the agent to check |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet"
],
"properties": {
"wallet": {
"type": "string",
"minLength": 3,
"description": "MultiversX wallet address (erd1...) of the agent to check"
}
},
"additionalProperties": false
}Anchor your agent's declared decision basis as an immutable WHY proof BEFORE executing an action — never internal chain-of-thought. Implements the Prove Before Act / Coherence Layer pattern. Pass intent (goal), context (facts considered), and decision (action about to execute). Receives: proof_id, coherence_anchor (SHA-256 of the payload), timestamp. Link the returned proof_id to your WHAT proof via certify_file metadata.why_proof_id to complete the full 4W audit trail. Cost: $0.01 per anchor (same as certify_file).
| Argument | Type | Description |
|---|---|---|
| who | string | Agent identifier — wallet address, agent name, or model id (default: derived from API key owner) |
| intent* | string | The agent's stated goal or objective for this action (e.g. 'Optimize portfolio allocation for Q3') |
| context* | string | Relevant facts, constraints, and inputs considered before the decision (e.g. 'BTC RSI=38, allocation 2.1%, policy v3.1') |
| decision* | string | The specific action the agent is about to execute (e.g. 'BUY 0.5 BTC at market') |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"intent",
"context",
"decision"
],
"properties": {
"who": {
"type": "string",
"maxLength": 200,
"description": "Agent identifier — wallet address, agent name, or model id (default: derived from API key owner)"
},
"intent": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "The agent's stated goal or objective for this action (e.g. 'Optimize portfolio allocation for Q3')"
},
"context": {
"type": "string",
"maxLength": 4000,
"minLength": 1,
"description": "Relevant facts, constraints, and inputs considered before the decision (e.g. 'BTC RSI=38, allocation 2.1%, policy v3.1')"
},
"decision": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "The specific action the agent is about to execute (e.g. 'BUY 0.5 BTC at market')"
}
},
"additionalProperties": false
}Discover available Prove Before Act certification services, live pricing, and capabilities. No authentication required.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Query an agent's calibration quality over time: mean confidence gap, variance, bias label (overconfident / underconfident / calibrated), and per-decision time series. Fully public — use this to evaluate another agent before trusting it. agentId accepts a MultiversX wallet address (erd1...) or internal user id.
| Argument | Type | Description |
|---|---|---|
| n | integer | Number of recent outcomes to include (default 50, max 200) |
| agent_id* | string | Agent wallet address (erd1...) or internal user id |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"agent_id"
],
"properties": {
"n": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1,
"description": "Number of recent outcomes to include (default 50, max 200)"
},
"agent_id": {
"type": "string",
"minLength": 1,
"description": "Agent wallet address (erd1...) or internal user id"
}
},
"additionalProperties": false
}Retrieve a proof in structured JSON or Markdown format. Use JSON for machine processing, Markdown for LLM consumption.
| Argument | Type | Description |
|---|---|---|
| format | string | Output format: json or md |
| proof_id* | string | UUID of the certification |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"proof_id"
],
"properties": {
"format": {
"enum": [
"json",
"md"
],
"type": "string",
"default": "json",
"description": "Output format: json or md"
},
"proof_id": {
"type": "string",
"description": "UUID of the certification"
}
},
"additionalProperties": false
}Reconstruct the full 4W audit trail for a contested agent action. Returns WHO (agent identity + SIGIL), WHAT (SHA-256 hash on-chain), WHEN (MultiversX block timestamp), WHY (declared decision basis anchored before acting, never internal chain-of-thought). Includes verification summary with intent_preceded_execution flag, chronological timeline of WHY/WHAT proofs, and session heartbeat anchor. Requires x402 payment (current per-call USDC price on Base via X-PAYMENT header) or API key authentication. Without payment, returns payment requirements with USDC address and amount.
| Argument | Type | Description |
|---|---|---|
| wallet* | string | Agent wallet address (erd1...) that owns the proof |
| proof_id* | string | UUID of any proof in the action pair — WHY (declared decision basis), WHAT (action), or heartbeat session proof |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"proof_id",
"wallet"
],
"properties": {
"wallet": {
"type": "string",
"minLength": 3,
"description": "Agent wallet address (erd1...) that owns the proof"
},
"proof_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "UUID of any proof in the action pair — WHY (declared decision basis), WHAT (action), or heartbeat session proof"
}
},
"additionalProperties": false
}START HERE if you have no API key. Get 10 free on-chain certifications instantly — no wallet, no credit card, no account required. Call this once with any agent_name, receive a pm_ key, then use certify_file or audit_agent_session immediately. Takes under 1 second.
| Argument | Type | Description |
|---|---|---|
| agent_name* | string | A short identifier for your agent (e.g. 'trading-bot', 'my-langchain-agent'). Must be unique across the platform. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"agent_name"
],
"properties": {
"agent_name": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "A short identifier for your agent (e.g. 'trading-bot', 'my-langchain-agent'). Must be unique across the platform."
}
},
"additionalProperties": false
}Optional operator policy: authorize only an unexpired WHY anchor belonging to the calling account whose exact hash and transaction payload are independently confirmed by the MultiversX API and Gateway. A recent coherence row or stored confirmed status is not sufficient. Pass intent_hash (the coherence_anchor from check_coherence) or the identical intent + context + decision payload. Returns { allowed, anchor_id, expires_at }; any error or result other than allowed === true must block delegation. This is provider-based evidence, not local consensus verification; Prove Before Act does not automatically enforce the policy. Reused intent hashes do not establish a new commitment per invocation. Read-only and free — no credits consumed.
| Argument | Type | Description |
|---|---|---|
| who | string | Agent identifier — must match the value used in check_coherence (default: derived from API key owner) |
| intent | string | The stated goal — must be byte-identical to the check_coherence call (used with context + decision to recompute the anchor hash) |
| context | string | The facts considered — must be byte-identical to the check_coherence call |
| decision | string | The action to execute — must be byte-identical to the check_coherence call |
| intent_hash | string | The coherence_anchor hash returned by check_coherence (64 hex chars). Fastest path — pass this if you have it. |
| max_age_minutes | integer | Anchor validity window in minutes (default 120 = 2h). Anchors older than this are considered expired/divergent. |
Submit the actual outcome for a decision previously anchored with metadata.confidence_level. Computes the confidence gap (anchored − actual) and stores it for calibration tracking. Operator-only — you must own the proof. Each proof can only have one outcome.
| Argument | Type | Description |
|---|---|---|
| proof_id* | string | UUID of the certification that was anchored with metadata.confidence_level |
| visibility | string | Whether this outcome is publicly visible (default: public) |
| outcome_score* | number | Actual outcome quality (0.0 = complete failure, 1.0 = fully successful) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"proof_id",
"outcome_score"
],
"properties": {
"proof_id": {
"type": "string",
"minLength": 1,
"description": "UUID of the certification that was anchored with metadata.confidence_level"
},
"visibility": {
"enum": [
"public",
"private"
],
"type": "string",
"default": "public",
"description": "Whether this outcome is publicly visible (default: public)"
},
"outcome_score": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Actual outcome quality (0.0 = complete failure, 1.0 = fully successful)"
}
},
"additionalProperties": false
}Verify an existing xproof certification. Returns proof details including file hash, timestamp, blockchain transaction, and verification status.
| Argument | Type | Description |
|---|---|---|
| proof_id* | string | UUID of the certification to verify |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"proof_id"
],
"properties": {
"proof_id": {
"type": "string",
"description": "UUID of the certification to verify"
}
},
"additionalProperties": false
}| confidence_level* | number | Confidence score from 0.0 to 1.0. Typical values: 0.6 (initial), 0.8 (pre-commitment), 1.0 (final). |
| reversibility_class | string | Governance: how reversible is this action? 'reversible' = can be undone, 'costly' = reversible but expensive, 'irreversible' = cannot be undone (on-chain settlement, data deletion, sent email). When 'irreversible', confidence_level must be >= 0.95 or xproof flags a policy violation. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"file_hash",
"filename",
"decision_id",
"confidence_level",
"threshold_stage"
],
"properties": {
"who": {
"type": "string",
"description": "Agent identity (wallet address, name, or agent ID)"
},
"why": {
"type": "string",
"description": "Reason or instruction hash driving this decision"
},
"filename": {
"type": "string",
"maxLength": 255,
"minLength": 1,
"description": "Original filename with extension (e.g. decision.json, max 255 chars)"
},
"file_hash": {
"type": "string",
"pattern": "^[a-fA-F0-9]+$",
"maxLength": 64,
"minLength": 64,
"description": "SHA-256 hash of the decision or output file (64 hex characters)"
},
"author_name": {
"type": "string",
"maxLength": 128,
"description": "Name of the certifying agent (default: AI Agent, max 128 chars)"
},
"decision_id": {
"type": "string",
"minLength": 1,
"description": "Shared UUID linking all confidence stages for the same decision. Generate once and reuse across all stages."
},
"threshold_stage": {
"enum": [
"initial",
"partial",
"pre-commitment",
"final"
],
"type": "string",
"description": "Named stage of the decision: initial (first assessment), partial (gathering info), pre-commitment (almost certain), final (committed)."
},
"confidence_level": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Confidence score from 0.0 to 1.0. Typical values: 0.6 (initial), 0.8 (pre-commitment), 1.0 (final)."
},
"reversibility_class": {
"enum": [
"reversible",
"costly",
"irreversible"
],
"type": "string",
"description": "Governance: how reversible is this action? 'reversible' = can be undone, 'costly' = reversible but expensive, 'irreversible' = cannot be undone (on-chain settlement, data deletion, sent email). When 'irreversible', confidence_level must be >= 0.95 or xproof flags a policy violation."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"who": {
"type": "string",
"maxLength": 200,
"description": "Agent identifier — must match the value used in check_coherence (default: derived from API key owner)"
},
"intent": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "The stated goal — must be byte-identical to the check_coherence call (used with context + decision to recompute the anchor hash)"
},
"context": {
"type": "string",
"maxLength": 4000,
"minLength": 1,
"description": "The facts considered — must be byte-identical to the check_coherence call"
},
"decision": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "The action to execute — must be byte-identical to the check_coherence call"
},
"intent_hash": {
"type": "string",
"pattern": "^[a-fA-F0-9]+$",
"maxLength": 64,
"minLength": 64,
"description": "The coherence_anchor hash returned by check_coherence (64 hex chars). Fastest path — pass this if you have it."
},
"max_age_minutes": {
"type": "integer",
"maximum": 1440,
"minimum": 1,
"description": "Anchor validity window in minutes (default 120 = 2h). Anchors older than this are considered expired/divergent."
}
},
"additionalProperties": false
}