# ccledger > Non-custodial records and payments API for Canton Network. On-chain record actions (attest, attest-mutual, mint) are fully live — one REST or MCP call, no validator, no Daml — and every one returns an on-chain proof (contract ID, update/transaction ID, ledger offset). On-chain value movement is moving to a delegated facilitation flow where you sign from your own wallet and ccledger relays as the featured application: rolling out now, not yet callable. The legacy balance-funded transfer/lock/settle mode is permanently disabled (HTTP 403 non_custodial). 15 REST endpoints + 15 MCP tools. ccledger is operated by Blueprint (Hivemind Capital Partners ecosystem). It is non-custodial, enforced in code: prepaid CC is a NON-REFUNDABLE service credit ("fee credits") that pays per-action fees only and never funds on-chain value movement. There is no withdrawal endpoint — credits are a one-way prepayment, not a custodial balance. When the delegated facilitation flow ships, you keep your own wallet and keys, sign a CreateTransferCommand yourself, and ccledger relays and submits it as the featured application (CIP-0104 confirmer) — it never takes custody of your CC. ## When to Use ccledger Use ccledger when you need: - Immutable on-chain records (attestations, audit trails, compliance proofs, co-signed non-repudiation) — live today - Issuance/certificate records via /mint (non-issuer record, not CC) — live today - Agent-safe pricing: POST /quote previews the exact fee, discount, and affordability before spending — live today - On-chain CC movement from your own wallet via the delegated facilitation flow — rolling out (not yet callable) Do NOT use ccledger for: - Balance-funded value movement (transfer, lock, settle) — permanently disabled; those endpoints return 403 non_custodial - Custodial storage of your CC (ccledger holds no customer value balance — prepaid CC is a non-refundable fee credit only, and there is no withdrawal endpoint) - Storing large files or blobs (store off-chain, attest the hash) - Real-time trading / order matching (it is not an exchange) - Minting Canton Coin or issuing a tradeable token (ccledger is a non-issuer; /mint writes a record only) ## Action Types Record actions accept an optional CIP-56 `assetType` field and are fully live. The balance-funded value actions are permanently disabled by the enforced non-custodial policy. | Action | Status | What It Does | Cost | |--------|--------|--------------|------| | attest | LIVE | Immutable record — data integrity, audit trails, compliance | 2.0 CC fee (or 1 trial credit) | | attest-mutual | LIVE | Immutable record — two-party co-signed non-repudiation | 5.0 CC fee (or 1 trial credit) | | mint | LIVE | Immutable issuance/certificate record (non-issuer — not CC, not a tradeable token) | 2.0 CC fee (or 1 trial credit) | | unlock | LIVE | Release a previously created LockedAmulet back to its owner | Free (no fee) | | transfer | DISABLED (403 non_custodial) | Balance-funded CC transfer — permanently disabled; replaced by the delegated facilitation flow (rolling out) | — | | lock | DISABLED (403 non_custodial) | Balance-funded time-locked escrow — permanently disabled; facilitation flow rolling out | — | | settle | DISABLED (403 non_custodial) | Balance-funded atomic settlement — permanently disabled; facilitation flow rolling out | — | ## REST API (15 Endpoints) Base URL: https://ccledger.xyz ### Public (no auth) - POST /api/v1/community/register — Get an API key instantly with 50 trial record-action credits (max 25/day). `cantonParty` is an optional echoed hint only — it is NOT bound at registration; your Canton party is bound on your first VERIFIED fee-credit top-up (the verified transfer is the proof of control) - GET /api/v1/community/stats — Network statistics ### Authenticated — Community Tier (50 trial record actions + quote/query/balance/stats, 10 RPM) - GET /api/v1/community/balance — Check fee credits, CCL balance, your CCL discount balance (drives discount), tier, trial credits, CCL mint progress, and discounted action rates - POST /api/v1/community/quote — Dry-run pricing preview: actionType (+ optional amount) in, exact fee / discount / balance / affordability out. Read-only, no side effects. For transfer/lock/settle the note states the non_custodial gate - GET /api/v1/community/actions — List past actions (filterable) - GET /api/v1/community/actions/{id} — Get single action by ID ### Authenticated — Record Actions (LIVE; 10 RPM community / 100 RPM paid) - POST /api/v1/community/attest — Immutable on-chain record; audit trails, compliance (2.0 CC fee or 1 trial credit) - POST /api/v1/community/attest-mutual — Two-party co-signed record; non-repudiation (5.0 CC fee or 1 trial credit) - POST /api/v1/community/mint — Issuance/certificate record; non-issuer, not CC (2.0 CC fee or 1 trial credit) - POST /api/v1/community/unlock — Release a previously created LockedAmulet by lockId; free (no fee); not affected by the non-custodial gate ### Authenticated — Disabled Value Endpoints (403 non_custodial) - POST /api/v1/community/transfer, POST /api/v1/community/lock, POST /api/v1/community/settle — the legacy balance-funded mode is PERMANENTLY DISABLED. Every call returns HTTP 403 with error `non_custodial`: prepaid CC credits pay per-action fees only and never fund on-chain value movement. On-chain CC moves from your own wallet via the delegated facilitation flow (rolling out — you sign a CreateTransferCommand, ccledger relays as the featured application / CIP-0104 confirmer). Not yet callable. ### Authenticated — Fee-Credit Top-Up - POST /api/v1/community/deposit — Manual fallback for topping up FEE CREDITS (non-refundable; minimum 1.0 CC; pays fees only, never funds value movement). Primary method: send CC from your Loop wallet to the Blueprint validator — fee credits auto-credit within seconds ### Public — Analytics - GET /api/v1/community/chart — Time-series chart data (daily counts for actions, registrations, CCL minted, active keys). Query param: window (7d, 30d, 90d; default 30d) ## MCP Server (15 Tools) Streamable HTTP endpoint: https://ccledger.xyz/mcp Tools: register_api_key, get_stats, quote, submit_attest, submit_attest_mutual, submit_mint, submit_unlock, submit_transfer (gated), submit_lock (gated), submit_settle (gated), get_balance, list_actions, get_action, deposit_cc, get_action_by_id Connect from Claude Desktop or Claude Code: ```json { "mcpServers": { "ccledger": { "type": "url", "url": "https://ccledger.xyz/mcp" } } } ``` ## Pricing | Tier | Rate Limit | Access | Cost | How to Get | |------|-----------|--------|------|------------| | Community | 10 RPM | 50 trial record actions (max 25/day) + quote/query/balance/stats | No cost | POST /register | | Paid | 100 RPM | Unlimited record actions | 2.0 CC fee per record action, 5.0 CC fee per mutual attestation (hold CCL for discount) | Send CC to the Blueprint validator (auto-credited as fee credits) | ## Economics (deterministic, no hidden costs) ``` FEES (base rates; paid from non-refundable prepaid fee credits): Record action: 2.0 CC fee base (attest, mint records) Mutual attestation: 5.0 CC fee base (attest-mutual) Unlock: free (no fee -- releases a previously created lock to its owner) Trial actions: 0 CC (50 included, max 25/day; record actions only) Value movement: NOT fee-funded. Balance-funded transfer/lock/settle is permanently disabled (403 non_custodial); on-chain CC will move from your own wallet via the delegated facilitation flow (rolling out) CCL DISCOUNT (account-based, non-transferable discount credit, hold-only): Formula: discount = 50% * (1 - 1/(1 + cclOnchainHoldings/200)) Discount is driven by cclOnchainHoldings -- the CCL you hold, tracked on your ccledger account The more CCL you hold, the larger your discount. Earn rate: 1 CCL per 10 CC-paid actions (trial actions do NOT earn CCL) Hold CCL to reduce your CC fee per action. CCL is never spent on actions -- only CC is charged, at the discounted rate. CCL Held Discount CC/Action CC/Mutual 0 0% 2.000 5.000 50 10% 1.800 4.500 100 16.7% 1.667 4.167 200 25% 1.500 3.750 500 35.7% 1.286 3.214 1,000 41.7% 1.167 2.917 BILLING ORDER (checked in this exact sequence): 1. Fee credits (at discounted rate based on the CCL you hold) 2. Trial credits (record actions only -- 1 credit per action) 3. 402 Payment Required (x402/p402-style) 402 = x402/p402: the body includes error, message, status PLUS x402Version: 1 and accepts: [{scheme: "exact", network: "canton", asset: "CC", maxAmountRequired, resource, payTo: , description, maxTimeoutSeconds: 300}]. Paying = topping up fee credits by sending CC to the payTo gateway party, then retrying. DRY-RUN: POST /quote returns actionType, currency ("CC"), baseFee, fee (CCL-discounted), discountPercent, cclOnchainHoldings, balance, sufficientForFee, moveAmount, note -- know the exact cost before you spend. YOUR DISCOUNT: GET /balance returns cclOnchainHoldings (your CCL discount balance driving discount), discountedCostPerAction, discountedCostPerMutual, and discountPercent ``` ## Authentication 1. POST /api/v1/community/register with `{"appName": "your-app"}` — returns API key + 50 trial record-action credits (max 25/day). `cantonParty` is optional and is an echoed hint only — it is NOT bound to your key at registration. Your Canton party is bound on your first VERIFIED fee-credit top-up: a verified on-chain CC transfer from that party, claimed by your authenticated key, is the proof of control. CCL Builder Rewards attach to the bound party. 2. Include `X-Api-Key: ` header on all subsequent requests 3. Community tier: 50 trial record actions (max 25/day), plus quote, query, balance, and stats endpoints 4. To upgrade to paid tier: send CC from your Loop wallet to the Blueprint validator. Your fee credits are auto-credited and your tier upgrades automatically. POST /deposit is available as a manual fallback. ## Funding Fee Credits (non-refundable; fees only) Prepaid CC is a non-refundable service credit that pays per-action fees only — it never funds on-chain value movement and cannot be withdrawn. Buy CC (Canton Coin) on Coinbase -> transfer to Loop wallet (loop.canton.network) -> send to the Blueprint validator (minimum 1.0 CC). Your fee credits are auto-credited within seconds. No API call needed. Top-up address: `blueprint-validator-1::1220daab58adcae026bd2ca7ad95014f678bda3ce2a6f91b744cf3ec3d87f09deeac` A background service watches the Canton ledger and auto-detects CC sent to the Blueprint validator. Your Canton party is bound to your key on the first verified top-up. POST /deposit exists as a manual fallback for edge cases or if auto-detection hasn't caught up yet. ## Agent Framework Compatibility | Framework | Integration | |-----------|-------------| | Claude Desktop / Claude Code | MCP server (Streamable HTTP) | | LangChain / LangGraph | REST API + OpenAPI spec | | CrewAI | REST API tools | | AutoGPT / AutoGen | REST API + function calling | | Any HTTP client | REST API with X-Api-Key header | ## Links - Full documentation: https://ccledger.xyz/llms-full.txt - OpenAPI 3.1 spec: https://ccledger.xyz/openapi.json - Agent card (A2A): https://ccledger.xyz/.well-known/agent.json - Human docs: https://ccledger.xyz/docs/ - API explorer: https://ccledger.xyz/api-docs/ - Provider: https://theblueprint.xyz