Token-value accounting

Assay the spend, not the count

Providers report totals. Assay records what the tokens were for, what a result cost, and what it cannot measure.

How the instrument holds

Local first. Conversations stay on your machine. One verb reaches the network — it fetches a public rate card.

Corrected, not rewritten. A wrong figure stays visible. The correction sits beside it, versioned.

Unknown is named. $0.00 is a claim. Unpriced is a fact.

Ore

Every token arrives as a count.

No purpose. No residual. A total with nothing assayed.

Bind

Assay binds each span to a purpose.

What it cannot price, it leaves unpriced — it will not invent the gap.

Metal

$0.00 is a claim. Unpriced is a fact.

Ore in. Metal out. The open cells stay open on purpose.

The register

A ledger you can bill from.

Written once. Corrected in the open. Joined to the conversation that caused the spend. Not a dashboard of totals.

Assigns value, not just count

Each span carries purpose, phase, and a reading. A total without attribution is still ore.

Names what it cannot measure

If the rate card will not vouch for a model, the span records tokens and no cost. The residual stays on every total.

Runs on your machine

Assay is not in the request path. It cannot slow a turn. It reads what already happened.

Invariants

The limits sit next to the claims.

Your prompts do not leave

One verb reaches the network. It fetches public rate cards. It never opens the database.

Deletion that can refuse

assay shred destroys a principal's key. On a partial erasure it exits non-zero rather than report a completion it did not achieve.

Not a value oracle

Assay validates provenance, never truth. A team that labels everything "feature work" will get a clean, useless aggregate — and Assay will report it faithfully.

The substrate is MIT

The log, the stores, the rate card, and the capture path are free. The value layer is the product. The boundary is a lint rule, not a promise.

Assay your spend

Install Assay