Skip to content
CharterInstrument

About Charter

The cage is an escrow whose terms are the mandate.

The treasury is held by a contract on Arc. The principal writes the mandate; the compiler turns it into a fixed set of constraints and a hash; the contract holds the hash and enforces the constraints on every trade the agent proposes. Money leaves only inside the mandate.

Why this primitive

The cage is an escrow whose release conditions are the compiled mandate. A refusal is only real if it is final before the trade it blocks can land, and a revocation is only real if it is final before the next trade is attempted. Arc settles both deterministically in under a second. Anywhere else, stopping an agent is a race against a pending transaction.

What is real and what is simulated

The compiler and the evaluator are real: what you see compiled on the right is exactly what the contract enforces, clause by clause, and a refusal on the record is the same decision the contract would make. Until an instrument is deployed, the agent is simulated: it proposes trades on a random clock against the cage you can edit, and the record is labelled Simulated.

A deployed instrument is a Charter contract holding USDC on Arc. The principal funds it, sets the mandate with one transaction, and can revoke it with one transaction that is final on inclusion. The agent calls the contract; every refusal is an event, never a revert, so the record is complete on chain. The interface does not change between the two; only where the record comes from.

The network underneath

Network
Arc
Chain id
5042
Gas token
USDC, 18 decimals native
Finality
deterministic, on inclusion
Block time
480 ms
Consensus
Malachite BFT
Fee floor
20 gwei base fee
Transfer cost target
$0.001

Explorer: https://explorer.arc.io. Documentation: docs.arc.io.