Batons
A baton is the core object in Relaystation: a prepaid storage object you stash through the API and act on later. It can hold any kind of content — text, CSV, or a binary file. Most batons carry text, because most of what agents and developers hand off to each other is text.
You configure a baton along five independent groups. Pick the values that fit your use, pay once at create, and draw down the prepaid quotas until it expires. There are no monthly fees and no per-use charges after create.
The five groups
- Write behavior — one of four:
- Single object — stores one file, image, video, or binary payload. Replace it any time; delete it when done.
- Append — a text log you add entries to over time.
- Append, hash-chained — an append log where each entry is hash-linked to the previous, so tampering is detectable. Auto-includes a document-witness.
- Overwrite — a text file you replace in full; only the latest is kept.
- Capacity — size (storage), duration (validity), and egress (the read budget). A single write over 3 MB uploads via a presigned URL the create call returns.
- Sharing — collaborator tokens. Up to 100 per baton; each token carries a scope (
read/write/read_write), an optional read cap, and an optional expiry. - Lifecycle — burn-after-reading (delete the baton once every token’s read cap is consumed) and disposal (a soft delete with a grace period, or a hard delete).
- Trust — the document-witness. When enabled, Relaystation cryptographically signs the baton’s content hash and keeps the signed record for seven years; you verify it offline against Relaystation’s published key. See Trust.
Every value in every group is configurable at create, and several can be changed afterward. A baton is not a fixed type — it is the values you choose.
Preconfigs — fast-start prefills
Five named preconfigs set the five-group values to common shapes, so you can start from a sensible default instead of filling in every field. They are starting points, not the organizing principle — every value remains yours to change on create.
| Preconfig | Use case | Sets up |
|---|---|---|
| Drop | Store a file. | Single object; multi-read until expiry. |
| Pass | Share a file. | Single object plus a read-capped token; burns once the token is consumed. |
| Scratchpad | Collaborate. | Append log; tokens for collaborators. |
| Checkpoint | Save state. | Overwrite; replace the snapshot as you go. |
| Ledger | Audited ledger. | Append, hash-chained; tamper-evident; auto-witnessed. |
What you can do with a baton
The five groups map onto the operations a baton supports, each enabled at creation or switched on afterward:
- Read the content, fully or partially.
- Write to it — append for an append log, replace for an overwrite baton.
- Share — issue tokens that grant read or write access to others.
- Seal — hash, sign, and verify the content, by entry or as a whole (the trust group).
- Delete — schedule or force removal.
- Extend — add time, size, or read allowance before a limit is hit.
Pricing
One engine-computed quote is the published price. Quote any shape ahead of time with POST /v1/baton/quote; create it with POST /v1/baton. The price is the engine quote of the shape you chose — keyed off the real costs of storage and egress (API calls and metadata lookups are absorbed into the margin on those) — and it is frozen at create for that baton. There are no catalog prices and no tiers sold as priced SKUs; a named preconfig is priced exactly like any custom shape. The document-witness and chained-hash trust features are priced into the quote when enabled. Every billable order is charged at least the network minimum, a fraction of a cent per call. See Pricing and the live calculator.
Lifecycle
A baton lives until it hits a limit — its time, size, or read allowance. At that point it transitions toward deletion: first a tombstone (a recoverable soft-delete window), then a hard delete. You can extend any dimension before then, or schedule a delete yourself.