CreditChain CreditChain
◆ Built for the AI era

Smart contracts your
AI agents can actually use.

Every contract here is source-verified against its deployed bytecode — and runs on the only chain where an AI agent can hold bounded, revocable spending authority instead of your private key.

Studio is the front door — read, write, compile and deploy contracts from the browser at forge.creditchain.org, driven by the same API an agent uses. No install and no key upload: Studio calls contracts through your own wallet.
python3 agent-demo.py  ·  live testnet
▸ agent reads the hub manifest — no HTML, no scraping
▸ requires ABI: createMandate, spend, revoke → 1/3 candidates qualify
  ✓ selected AgentSpendVault — capability-matched
  ✓ verified — bytecode keccak match vs eth_getCode
  ⚠ audited: none — UNAUDITED
▸ owner grants a bounded mandate  (the one human decision)
  ✓ mandate #1: budget 3 CCC · per-tx ≤ 1 CCC
▸ agent spends autonomously — no human approves any payment
  ✓ paid 1 CCC for task 1 → merchant
  ✓ paid 1 CCC for task 2 → merchant
  ✗ chain rejected: 2 CCC > 1 CCC per-tx cap → PerTxExceeded()
▸ owner revokes — the agent is instantly powerless
  ✗ chain rejected: any spend after revoke → MandateInactive()

This already happened — verify it yourself

Not a recording. These mandates are read from CreditChain in your browser right now. Every agent below spent real value autonomously, then was revoked by its owner.

mandates granted
Read directly from AgentSpendVault.mandate(id)call it yourself in Studio, no wallet needed.

Why this is different

You cannot hand an AI agent your private key. Every other catalog lists code and stops there.

01

Verified, not claimed

Cards are generated from live chain data. The generator refuses to publish an unverified contract — the code cannot ship a lie.

02

Machine-readable first

Agents read agent.json and structured cards. The web page renders the same files — no second source of truth, no scraping.

03

Bounded autonomy

An agent acts under an ERC-AGM mandate: budget cap, per-transaction max, rate limit, allowlist, expiry, instant revoke — enforced by the chain, not by trust.

Post-quantum, and honest about it

Shor's algorithm recovers a secp256k1 private key from its public key — and every address that has ever sent a transaction has already published one.

Straight answer first: CreditChain's base layer is not quantum resistant — it runs secp256k1 ECDSA, like every other production EVM chain. Anyone claiming otherwise is selling you something. What is live is a post-quantum break-glass authority: the layer where real resistance can ship today, with no hard fork. Full per-layer status →
01

Asymmetry, not decoration

A post-quantum key is worthless if it can only do what the classical key can — the attacker just uses the one they broke. Here the ECDSA controller has no withdraw function at all, cannot redirect recovery, and is capped per window. Only the quantum key sweeps and rotates.

02

Hash-based, so Shor does not apply

WOTS+ (RFC 8391) over keccak256 — the same one-time signature inside NIST's SLH-DSA. Grover only halves the margin (~128-bit). keccak256 is already an EVM opcode, so verification needs no precompile and no consensus change: 2,144-byte signatures, 252,606 gas.

03

Proven against an independent reference

The Solidity verifier accepts a separately written Python implementation's signature bytes cold, and the signer reproduces its output byte-for-byte. Testing a verifier only against its own signer proves agreement, not correctness. 32 tests, unaudited.

break-glass  ·  executed on live testnet
▸ attacker holds a forged ECDSA controller key. what can it do?
  ✗ withdraw            no such function exists in the ABI
  ✗ redirect recovery   0x98a838c8  AlreadyArmed()
  ✗ overspend           0x7afd1a0d  OutflowExceeded(uint256,uint256)

▸ owner signs the break-glass digest OFFLINE with a hash-based key
  ✓ 2144-byte WOTS+ signature — relayed by a third party, not the owner
  ✓ every mandate revoked, balances pulled back
  guard  21 CCC → 0      recovery  0 CCC → 25 CCC
  ✓ controller rotated · guard frozen · one-time key burned
  ✗ replay same signature  0x56248192  GuardianConsumed()

Live at 0x63B76f6080f2CdF0bed1bD3999c5A34955956b3a — source-verified, bytecode hash matched. Manage keys air-gapped with ccq, which writes no secret to disk, opens no socket when signing, and never touches a secp256k1 key.

AI finance, native to the chain

Most chains bolt agents on afterwards. CreditChain puts the agent's authority in the protocol, where it can be enforced instead of promised.

01

Authority is an on-chain object

On every other chain, "let this agent pay for things" means handing over a key and hoping. On CreditChain a mandate is a first-class object with a budget, a per-transaction cap, a rate limit, an allowlist, an expiry and an owner kill-switch. The chain rejects what the mandate forbids — the agent's software cannot talk its way past it, and neither can whoever steals the agent's key.

02

Reputation earned from real work

AgentReputation only accrues from mandates an agent actually served, attested by the owner who funded them. It cannot be bought or self-declared. ReputationGate then lets an owner say "spend only if this agent's score clears my bar", checked at call time — so trust is a number derived from history, not a claim in a profile.

03

Discovery built for machines

An agent asks capabilities.json which contract satisfies an intent, gets the required function set, and checks the answer against the ABI itself. No scraping, no model guessing which contract is right, no trusting our ranking. The hub can be wrong about a name; it cannot be wrong about an interface.

Why this matters for finance specifically. Autonomous payments fail on one question: what stops the agent when it is wrong, compromised, or simply looping? Answering it in application code means every integrator re-implements the same limits and one of them gets it wrong. Answering it in the settlement layer means the limit holds for everyone, is auditable by anyone, and survives the agent being fully controlled by an attacker. That is the whole thesis — determinism at the base, intelligence above it.

A professional contract workbench

Coming from Remix? Everything you know still applies — CreditChain is EVM-equivalent. What changes is what you can build against.

01

Your toolchain, unchanged

Foundry, Hardhat, viem, ethers and Remix all work. Same Solidity, same JSON-RPC, same wallets. Point your existing config at the testnet RPC and deploy — nothing is forked, wrapped or re-specified.

forge create src/MyContract.sol:MyContract \
  --rpc-url https://testnet.creditchain.org \
  --chain 2026042404
02

Studio, for reading and calling

Browser-based, no install, no key upload: pick a verified contract, call it through your own wallet, see the decoded result. It reads the same catalog an agent does, so what you test is what an agent will find.

Open Studio →

03

Publishing means proving

A card is only generated after the source is matched against deployed bytecode. There is no "submit and describe" path, because a catalog that publishes what it cannot check is just a list. Verify first, then it appears.

Migrating from Remix. Keep using it — Remix speaks plain JSON-RPC, so add CreditChain as a custom network and your workflow is intact. Forge does not try to replace the editor you already like. It covers what an editor cannot: which deployed contracts are real, what they actually enforce, and how an autonomous caller should be bounded when it uses them.

Honest limits, so nobody is surprised: the catalog is four first-party contracts on one testnet, there is no third-party submission path yet, and nothing here has an external audit — every card says so.

CreditChain, live

Queried from your browser against the public RPCs — not a cached badge. This is the chain your contracts and agents run on.

loading…

Testnet

querying

RPC https://testnet.creditchain.org · faucet https://faucet.creditchain.org/testnet/drip · explorer scan.creditchain.org · machine-readable agent.json

No accounts. Ever.

Forge has no passwords, no email, and no user database — because it does not need one.

browse

Anonymous by default

Search, read cards, verify provenance and use the agent API with no sign-in at all. A login wall on a contract catalog would destroy the trust it exists to provide.

publish

Your wallet is your identity

Sign a message to prove you control an address. The address that deployed a contract owns its card — permissions are read from the chain, not from us.

agents

A mandate is the account

An agent authenticates with a key scoped to its ERC-AGM mandate. Spend caps, rate limits and revocation already exist on-chain — no separate quota system.

Forge will never ask for a private key or seed phrase. Sign-in requests a personal_sign signature only — it is not a transaction and cannot move funds. Sessions live in sessionStorage and vanish when you close the tab; nothing is stored on a server.

Catalog

Seeded with the CreditChain agent-finance primitives. Every claim links to on-chain proof.

verified contracts
passing tests
ABI entries
0audited — stated plainly
Read this before you deploy anything. These contracts run on a public testnet; test CCC has no monetary value. None of them has an external security audit. “Verified” means the deployed bytecode matches the published source — it does not mean the code is safe.