The scenario
A customer buys a coffee order at the register of Corner Cafe LLC and pays 12.50 USD in cash. There is no contract, no credit terms, no invoice — value settles the moment it moves.
How FORAY models it
Any component type can be a record's entry point. A cash sale is settlement and nothing else, so this record carries one Action and three empty component arrays — empty, but present, because the four arrays are required envelope structure.
The Action carries the settled amount (F9, register name foray_settled_amount) and status (F15). The transaction's own amount (F7) and currency (F8) sit at top level; the Action's monetary fact resolves its currency from the transaction's F8 by inheritance — nothing is copied downward.
What to observe in the record
- The record identifier (
F1) and source record reference (F2) are equal: this record originates natively and names itself as its source. - All four component arrays are present; three are empty.
- Whole-dollar values are spelled as bare integers on the wire —
12.5, never12.50— the canonical decimal spelling.
The record
Wire 4.2 record
This record is a teaching example, emitted by the FORAY generator (template action-only-cash-receipt) — not hand-written. No blockchain anchoring has occurred or is implied; anchor-related fields are placeholders. Parties, amounts, and dates are illustrative. Wire keys are catalog codes (F-codes); the readable names used in the prose above are the implementer register, which never appears in hashed bytes.
{
"F1": "RETAIL_2026_Q3_CASH_112",
"F2": "RETAIL_2026_Q3_CASH_112",
"F3": "Corner Cafe LLC",
"F7": 12.5,
"F8": "USD",
"F26": "cash_receipt",
"schema_version": "4.2",
"timestamp": "2026-07-24T08:15:00Z",
"arrangements": [],
"accruals": [],
"anticipations": [],
"actions": [
{
"F4": "cash_receipt",
"F9": 12.5,
"F15": "completed",
"F22": [],
"F23": [],
"F24": [],
"id": "ACT_CASH_SALE_112"
}
],
"component_hashes": {},
"merkle_root": "sha256:PLACEHOLDER",
"blockchain_anchor": {
"anchored_at": null,
"block_height": null,
"confirmation_time_ms": null,
"kaspa_tx_id": null
}
}
Canonical form — the hashed bytes
The canonical byte form is a single line: F-coded members in ascending numeric order, envelope members in their ruled enumeration, one legal spelling per number. The hash below is computed over exactly the bytes shown — copy the line into any SHA-256 tool to reproduce it.
{"F1":"RETAIL_2026_Q3_CASH_112","F2":"RETAIL_2026_Q3_CASH_112","F3":"Corner Cafe LLC","F7":12.5,"F8":"USD","F26":"cash_receipt","schema_version":"4.2","timestamp":"2026-07-24T08:15:00Z","arrangements":[],"accruals":[],"anticipations":[],"actions":[{"F4":"cash_receipt","F9":12.5,"F15":"completed","F22":[],"F23":[],"F24":[],"id":"ACT_CASH_SALE_112"}],"component_hashes":{},"merkle_root":"sha256:PLACEHOLDER","blockchain_anchor":{"anchored_at":null,"block_height":null,"confirmation_time_ms":null,"kaspa_tx_id":null}}
Canonical-bytes SHA-256: 71db9e649977b6c90de4e3191d8953f15a27423fc12cae104ab92de02f59ce14
Validated against the live validator (POST /api/validate-foray): 0 errors, 0 warnings.