Quick Start

Get from zero to your first verified claim in minutes.

1. Get Your API Key

Choose a plan and complete checkout. Your pl_live_* API key will be provisioned directly to your Dashboard.

2. Install the MCP Server

Ensure you have Node.js installed, then run:

npm install -g proofledger-mcp

3. Configure Your AI Agent

Add the following to your Claude Desktop config (see MCP Setup for other editors):

{
  "mcpServers": {
    "proofledger": {
      "command": "proofledger-mcp",
      "env": {
        "PROOFLEDGER_API_KEY": "pl_live_your_key_here"
      }
    }
  }
}

4. Verify a Claim

Ask your AI agent:

"Verify this revenue arrangement: Entity X enters a 3-year software license agreement for $120,000 with two distinct performance obligations."

You should see a formal verification result with an ED25519-signed certificate within 15–30 seconds.


MCP Setup

ProofLedger integrates with any AI agent that supports the Model Context Protocol.

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "proofledger": {
      "command": "proofledger-mcp",
      "env": {
        "PROOFLEDGER_API_KEY": "pl_live_your_key_here"
      }
    }
  }
}

Cursor

.cursor/mcp.json

{
  "mcpServers": {
    "proofledger": {
      "command": "proofledger-mcp",
      "env": {
        "PROOFLEDGER_API_KEY": "pl_live_your_key_here"
      }
    }
  }
}

VS Code (Copilot)

.vscode/mcp.json

{
  "servers": {
    "proofledger": {
      "command": "proofledger-mcp",
      "env": {
        "PROOFLEDGER_API_KEY": "pl_live_your_key_here"
      }
    }
  }
}

Environment Variables

VariableRequiredDescription
PROOFLEDGER_API_KEYYesYour API key (starts with pl_live_)
PROOFLEDGER_API_URLNoOverride API URL (default: https://api.proofledger.space)

Tools Reference

6 tools available through the Model Context Protocol.

verify_claim

Sync

Verify a single accounting claim (any of the 10 supported standards). Returns a signed proof certificate.

// Input
{ "text": "Entity X enters a 3-year software license agreement for $120,000." }

// Output → job_id + status: "queued"

verify_file

Sync

Read a local file, extract accounting claims, and verify each independently.

// Input
{ "path": "/path/to/contract.pdf", "max_claims": 5 }

// Supported: .pdf, .txt, .md, .rst

verify_batch

Async

Submit multiple claims for parallel verification. Returns immediately with a batch ID.

// Input
{
  "claims": [
    "Entity X enters a contract for $120,000.",
    "The arrangement has two distinct performance obligations.",
    "Revenue is recognised at a point in time."
  ]
}

// Output → { "batch_id": "550e8400-...", "total": 3, "status": "running" }

Up to 10 claims can be submitted per batch.

batch_status

Async

Poll the progress of a batch verification.

// Input
{ "batch_id": "550e8400-..." }

// Output → { "completed": 2, "passed": 2, "failed": 0, "status": "running" }

list_verifications

Query

Show recent verification history.

// Input
{ "limit": 10 }

get_report

Query

Download the HTML proof certificate for a completed verification.

// Input
{ "id": "550e8400-...", "save_to": "~/Desktop/" }

If save_to is provided, saves the report to the specified directory.

MCP Resources

URIDescription
proofledger://predicatesLists all 280+ predicates (10 standards) in the formal verification library.
proofledger://predicates/{standard}Lists predicates for a specific standard (e.g. ifrs16).
proofledger://usageCurrent plan, verifications used this month, and remaining limit.

API Reference

Direct HTTP access for custom integrations. Base URL: https://api.proofledger.space

Authentication

All requests require an API key in the X-API-Key header:

curl -X POST https://api.proofledger.space/verify \
  -H "Content-Type: application/json" \
  -H "X-API-Key: pl_live_your_key_here" \
  -d '{"claim_text": "3-year software license, $120k"}'
PlanMonthly Limit
Professional500
Enterprise5,000
Platform50,000
POST /verify

Submit a single claim for verification.

Request Body

{
  "claim_text": "Entity X enters a 3-year software license agreement for $120,000."
}

Response 202

{
  "job_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "queued",
  "message": "Claim submitted for verification"
}
StatusReason
400Missing claim_text
401Missing or invalid API key
429Monthly limit reached
POST /verify/batch

Submit multiple claims for parallel verification.

Request Body

{
  "claims": [
    "Entity X enters a contract for $120,000.",
    "Two distinct performance obligations.",
    "Revenue recognised at a point in time."
  ]
}

Response 202

{
  "batch_id": "550e8400-...",
  "total": 3,
  "status": "running"
}
GET /verify/batch/{id}

Poll batch progress.

// Response 200
{
  "batch_id": "550e8400-...",
  "total": 3,
  "completed": 2,
  "passed": 2,
  "failed": 0,
  "status": "running"  // or "completed"
}
GET /report/{id}

Retrieve the verification report. Returns HTML proof certificate, or JSON if no HTML report available.

Verifying Certificates

The public key is available at api.proofledger.space/.well-known/proofledger.pub

from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey
from cryptography.hazmat.primitives.serialization import load_pem_public_key
import json, base64

pub_key = load_pem_public_key(open("proofledger.pub", "rb").read())

# Reconstruct payload (everything except "certificate")
result = {k: v for k, v in signed_result.items() if k != "certificate"}
payload = json.dumps(result, sort_keys=True, separators=(",", ":")).encode()

# Verify
signature = base64.b64decode(signed_result["certificate"]["signature"])
pub_key.verify(signature, payload)  # Raises InvalidSignature if tampered

ASC 606 Predicate Library

58 predicates covering the 5-step revenue recognition model, implemented in Lean 4.

Step 1: Identify the Contract 606-10-25

valid_contract commercial_substance measurable_consideration collectibility_probable approved_contract identified_rights identified_payment_terms contract_combination contract_modification

Step 2: Identify Performance Obligations 606-10-25-19

distinct_obligation series_of_distinct capable_of_being_distinct separately_identifiable customer_can_benefit not_highly_interdependent not_significant_modification not_significant_integration shipping_handling warranty_service_type warranty_assurance_type

Step 3: Determine Transaction Price 606-10-32

variable_consideration constraint_variable significant_financing noncash_consideration consideration_payable expected_value_method most_likely_amount price_concession refund_liability right_of_return

Step 4: Allocate Transaction Price 606-10-32-28

allocate_by_ssp observable_price adjusted_market_assessment expected_cost_plus_margin residual_approach allocate_discount allocate_variable_consideration

Step 5: Recognise Revenue 606-10-25-27

over_time point_in_time output_method input_method control_transferred customer_has_legal_title customer_has_physical_possession customer_has_risks_rewards customer_accepted_asset right_to_payment customer_controls_asset no_alternative_use enforceable_right_to_payment

Licensing 606-10-55

license_right_to_use license_right_to_access recognised_point_in_time recognised_over_time sales_based_royalty usage_based_royalty functional_ip symbolic_ip

IFRS 16 Predicate Library

28 predicates covering lease accounting — identification, classification, measurement, and special topics.

Lease Identification §9–10

is_lease

Recognition Exemptions §5–8

short_term_lease low_value_lease

Classification §61–66

classify_finance_lease classify_operating_lease

Lessee Measurement §22–46

lessee_recognition measure_rou_asset measure_lease_liability depreciate_rou_asset interest_on_lease_liability subsequent_cost_model subsequent_revaluation_model remeasure_lease_liability

Lessor Accounting §67–88

finance_lease_recognition finance_lease_income operating_lease_income lessor_initial_direct_costs

Modifications §44–46

lease_modification_separate lease_modification_remeasure

Sale-and-Leaseback §98–103

sale_leaseback_is_sale sale_leaseback_not_sale sale_leaseback_gain

Special Topics

sublease_classification covid_rent_concession ibor_reform_exemption variable_lease_payment lease_incentive lease_term_assessment

IFRS 15 Predicate Library

Predicates covering IFRS 15 core accounting standards for revenue from contracts with customers.

Core

ifrs15_core

ASC 842 Predicate Library

Predicates covering ASC 842 lease accounting standards.

Core

asc842_core

IAS 36 Predicate Library

Predicates covering IAS 36 impairment of assets standards.

Core

ias36_core

IFRS 9 Predicate Library

Predicates covering IFRS 9 financial instruments standards.

Core

ifrs9_core

ASC 740 Predicate Library

Predicates covering ASC 740 income taxes accounting standards.

Core

asc740_core

ASC 350 Predicate Library

Predicates covering ASC 350 intangibles—goodwill and other standards.

Core

asc350_core

IFRS S1 Predicate Library

Predicates covering IFRS S1 sustainability-related financial disclosures standards.

Core

ifrss1_core