Documentation Index
Fetch the complete documentation index at: https://docs.tradallo.com/llms.txt
Use this file to discover all available pages before exploring further.
What it is
A Universal Trade Receipt (UTR) is a JSON document describing a single closed trade: symbol, side, sizes, prices, timestamps, and the source the trade came from (broker API, on-chain wallet, CSV import, Performance Account). Every UTR is:- Canonicalized with JCS (RFC 8785) so two semantically-equal records produce byte-identical encodings.
- Hashed with SHA-256 over that canonical form. The hash is the UTR’s identity.
- Signed by Tradallo with an ed25519 keypair. The public key is published
at
/.well-known/tradallo-keys.json.
The envelope
Why JCS, not just JSON.stringify
JSON.stringify is non-deterministic across runtimes — key order, whitespace,
and Unicode escapes all vary. JCS pins all of those: sorted keys, no
whitespace, RFC-8785 number formatting. Two compliant implementations always
produce the same bytes for the same logical document — which is what makes the
hash a stable identity.
On-chain notarization (optional)
If a UTR is opted in for on-chain notarization, Tradallo posts the SHA-256 hash to the Solana memo program every five minutes. The transaction signature and slot become the UTR’s permanent timestamp.Verify a notarization
On-chain notarization is irreversible. Once a hash is posted to Solana, it
cannot be removed.
Verifying a UTR yourself
A reference TypeScript verifier ships in@tradallo/reputation:
@tradallo/agent-gate —
it wraps verification + threshold checks behind one call.
