# Core concepts

Transaction, rails, record. Rules, decisions, mandates.

1. **Transaction**: Who pays whom, for what, under which mandate.
2. **Rails**: The network, bank rail, chain or venue that carries it.
3. **Record**: A ledger entry with fee lines, the rule and its reconciliation.

## Rules

A rule chooses the rail. Rules are versioned code. You can diff, test in the sandbox and roll back any rule in one step.

## Tickets and the decision trace

Every payment has a ticket: its fee lines, each cited to a rule in the rules register, plus references to the decisions and events behind it. Ask why a payment routed, priced or declined and you get the answer line by line, with citations.

## Mandates and perimeters

A mandate is the set of bounds an operator approves for an agent: scopes, caps, recipients and finality rules. In the API it is a perimeter, versioned and expiring. Every request is checked against the perimeter before anything reaches a network. Outside it, the request is denied and the denial is recorded.

## Agent of record

Every agent-initiated payment carries an agent of record: the verified legal entity that answers for it. Agents are bound to that entity, not to a loose API key.

## Accounts

Organizations hold legal entities. Legal entities hold merchant accounts. Credentials, grants and data are scoped along that hierarchy.

## The record

One double-entry ledger for fiat, stablecoins, market funding, token cash legs and agent payments. Fee lines are entries, not footnotes.

## Idempotency and versions

Every write takes an Idempotency-Key header. Money amounts are decimal strings with an explicit currency. Objects carry the rule and perimeter versions that produced them.
