Agreements you own. Readable by humans, machines, and courts.

Riccy turns an agreement into proof you hold yourself. One signed document, permanently anchored, that anyone can verify on any machine — no server, no account, no platform to trust.

Verifies offline, forever Public or private, your choice Stacks into project hierarchies API and agent ready

A design study. The contract format, proof architecture and verification are worked out and demonstrated on this page; there is no production implementation yet.

The problem

You have the contract.
And the proof?

01

The proof lives on their server

Sign anything electronically and the record that you agreed sits inside a vendor's system. Cancel the account, let the company fold, hit a dispute five years later — retrieving the proof depends on them still being there and still cooperating.

02

A PDF proves nothing

The usual fallback is a PDF with a signature image, sitting in an inbox. Nothing binds the image to the contents, so it can be altered or regenerated, and two parties can hold different versions with no way to settle which is real. Email threads are not evidence.

03

Smart contracts lost the plot

They made agreements executable but unreadable — no legal prose, nothing a court can interpret, and a wallet plus gas fees required to touch them. They solved verification by discarding the contract.

The solution

One record. Signed by all of them. Controlled by none.

PARTY A keeps its own books PARTY B keeps its own books signs signs THE AGREEMENT 04b3e597… prose a court can read, params a machine can PERMANENT ANCHOR neither party controls it holds the proof holds the proof and so can anyone they show it to

Two parties are shown here for clarity; a contract states its own signing requirements, so three-party and n-of-m arrangements work the same way. Each party keeps its own books, as it always has. What changes is that they agree one record, sign it, and lodge it where none of them can alter it — and each walks away holding a copy that proves itself. That third record is the entry double-entry bookkeeping never had.

Working, right now

Change one character. The proof breaks.

Contracteditable
Verificationchecking
· CheckingRecomputing fingerprint
Fingerprint when signed
Fingerprint now
The same document, read by a machine

A smart contract is machine-readable because it is code — which is why no court can read it and no counterparty can review it without a developer. A PDF is the opposite problem: readable by people, opaque to software. Here the values are tagged inside the prose itself, so the same signed bytes serve both. No second file, no separate data feed, no integration that can drift out of sync with the contract — which is what lets software, and increasingly agents acting for people, work from an agreement rather than from a summary of one.

Now sign itno signatures yet

Signing generates a real key pair in your browser and signs the fingerprint above — Ed25519, through the same Web Crypto API. A signature commits to one exact document: sign both parties, then change a single character in the contract and watch both signatures fail. That is the property that makes the record a third entry rather than a file one side keeps — neither party can alter what was agreed without it becoming obvious to everyone else.

All of this is real cryptography running locally — open dev tools and check. Hashing gives integrity: a single altered character produces an entirely different fingerprint, so tampering cannot hide. Signatures give authenticity: they tie a specific party to that exact fingerprint. Permanent anchoring adds the third piece, existence at a point in time.

How it works

Four steps. Then it's yours.

01

Write

Start from a template rather than a blank page. Presets cover jurisdiction, currency, terms and whatever else the agreement needs; the output is readable prose with the key terms tagged so machines read the same document.

02

Sign

Signing needs a Riccy account. At minimum the signature is your account plus a one-time code to your email; it can be raised to a verified account, and to a wallet signature where a party works on-chain. The contract sets which level it requires.

03

Anchor

The signed document is written to permanent storage. Its existence and timestamp are fixed in a place no party controls and none can alter.

04

Hold

Every signer receives an Evidence Package — the document, the signatures, and a verifier that runs offline. Proof you hold, not proof you request.

The deliverable

What you actually walk away with.

Every signer receives an Evidence Package — a single archive holding everything needed to prove the agreement, forever, without contacting us or anyone else. A copy also sits in permanent storage. The record exists in three places at once, and no single party controls any of the others.

EVIDENCE PACKAGE contract.ram signatures.txt anchor.txt key.txt README.txt verify.html the agreement itself who signed, and their keys where and when it was fixed to decrypt it, if private what this is, in plain English checks it all, offline PARTY A holds a copy PERMANENT STORAGE holds a copy PARTY B holds a copy Three copies. No single party can alter, hide, or withdraw the record.

Platform-held records need the platform still running to produce them, and on-chain records need a live chain to query. This needs neither. Open the verifier in any browser, with the network switched off, and it will tell you whether the document is exactly what was signed.

This is the moment ownership transfers. Before it, access is platform-gated and revocable. After it, the proof is permanently yours — and stays true whether or not Riccy still exists.

The components

What the product actually is.

01The format — RAM

Ricardian Augmented Markdown. Readable prose with machine-readable parameters inline. One document serving both audiences — not a human version and a machine version that can drift apart.

# Service Agreement * RAM_VERSION = 1 ## PARTIES * ISSUER = Northgate Studio Ltd * HOLDER = Bramwell Group * REQUIRED_SIGS = issuer, holder ## CONSIDERATION * PRICE = 1200 * CURRENCY = EUR # END — everything above is hashed

Not JSON, not XML: a judge can't read those, and the prose is the legal agreement. The parameters serve the prose, never replace it. Where the two conflict, prose governs — stated in the contract itself, signed by all parties to it.

Jurisdiction, dispute resolution and termination live in the document too, as a signed section rather than in a platform policy. Everything that governs the agreement is inside the thing the parties put their name to.

02The composer — templates, not a blank page

Everything the composer produces is a valid Ricardian document: readable prose and machine-readable parameters in one file, canonical enough to hash and sign deterministically. That constraint never bends — it is what makes the proof work. What varies is how you get there.

You do not start from an empty page. Templates cover the common shapes — services, supply, licensing, employment, confidentiality — each carrying the clauses that shape normally needs. Presets fill in what repeats — jurisdiction, governing law, currency, payment and notice terms, dispute resolution, and whatever else a given kind of agreement calls for. Options switch clauses on and off, and conditional terms appear only when they apply.

Fill in the detailsgenerating live
Optional clauses
As people read it As it is stored
Editable — type into it. Changing a field above rewrites it.

Clauses renumber themselves as you add and remove them, and the wording stays yours to edit — the fields are scaffolding, not a cage. The tagged form on the second tab is the same document: it is what gets hashed, signed and stored, and nobody has to write it by hand. Templates are a starting point, not legal advice.

The result is that someone who is neither a lawyer nor a developer ends up with a contract a court can read and a machine can act on. The library grows with use — new shapes, new jurisdictions and new clause sets get added as real agreements call for them, rather than being guessed at in advance.

Templates are a starting point, not legal advice. For anything consequential, a lawyer should still read what you are about to send.

03Signing — multi-party, no wallet

Each party signs with an Ed25519 key. At minimum that is paired with a one-time code to their email, proving both cryptographic intent and email control at the moment of signing. From there the requirement can be raised: a Riccy ID, a verified Riccy ID where we have checked the identity behind the account, or a wallet signature for parties already operating on-chain. The contract states what it requires, so the bar matches the stakes instead of being fixed for everyone.

Quorum works the same way: two-party, three-party and n-of-m arrangements are all expressed in the document itself. Signing needs a Riccy account and takes a link, a code and a click — no gas, no wallet, no keys to manage. Verifying a finished agreement needs nothing at all — no account, no software, no connection. That asymmetry is deliberate: the effort sits with the people taking on obligations, not with everyone who later needs to check the record.

An account proves control of a login, not who you are in the world. So where the stakes justify it, a party can additionally be bound to a verified real-world identity — verified by us, or vouched for by a government eID or an organisational credential. That is an option a contract turns on, not a hurdle every signer has to clear.

04Permanent anchoring — existence and time

The signed document is anchored to permanent decentralised storage, fixing its content and timestamp beyond any party's reach. The fingerprint proves the document hasn't changed; the anchor proves it existed at a given moment.

Together they close the two ways a record fails: alteration, and a party simply denying it ever existed. Timestamps can additionally be recorded on Solana or Ethereum where a client wants on-chain corroboration — an option, not a dependency. No chain has to be running for a contract to verify, which is precisely what keeps verification permanent.

05Privacy — public or encrypted, your choice

Every contract is either public or private, chosen when it is created. A public contract is readable by anyone who has its reference — useful when the point is to be seen: a published licence, an open commitment, a credential meant for the world to check.

A private contract is encrypted before it is ever uploaded, so what sits in permanent storage is ciphertext — unreadable to anyone without the key, including us. The key travels inside the Evidence Package, to signatories only. The parties can always read and verify their own contract, while the stored copy reveals nothing. Commercial terms, rates and margins stay between the people who agreed them.

Private contracts also give a workable answer to the right to erasure. Delete the key and the ciphertext becomes permanently unreadable — functional erasure, without pretending that something written to permanent storage can be unwritten.

06Stackable contracts — for real projects

Real work is a hierarchy: a client engages a contractor, who engages subcontractors, who engage suppliers. Each relationship is its own agreement with its own proof, referencing its parent — so the whole tree is traversable and auditable without anyone's server.

CLIENT — CONTRACTOR root · 04b3e597… CONTRACTOR — SUB A parent · 04b3e597… CONTRACTOR — SUB B parent · 04b3e597… SUB A — SUPPLIER parent · 8f21c04d… Each node signed only by its own parties only. Depth is unlimited.

Every node is a separate agreement carrying its parent's fingerprint. Remove Riccy and the documents still reference each other, and the structure of the project remains provable from the documents alone.

Privacy is per node. A subcontractor's margin sits in their contract and stays invisible to the client unless explicitly granted. Visibility is agreed and signed up front, not assumed by the platform.

Each node is also independent for amendments. Changing one contract requires only its own signatories, and changes nothing elsewhere in the tree — so no one can rewrite an agreement they are not party to.

07Attestations — one-party records

The same machinery for single-party declarations, where one party issues a record rather than two agreeing one. A university issuing a degree or a course certificate. An employer confirming a role, dates and standing, so a former employee can prove their history years later without chasing an HR department that may no longer exist. A lab releasing a result, a body certifying compliance, an auditor confirming a check was done.

The issuer signs it once. The recipient holds it permanently and can present it to anyone, who can verify it without contacting the issuer at all — which is the part that makes credentials and employment records actually portable.

08API and agents — machines as counterparties

Contracts can be created, signed, and verified through the API — so agreements become part of a system rather than a manual detour out of one. Issue an attestation when a milestone closes; verify a counterparty's document before releasing work.

Because the same document is machine-readable, an autonomous agent can read the terms it is bound by, and verification returns structured output rather than a rendered page. As software starts transacting on behalf of people, the question of what an agent actually agreed to becomes a record, not a log line.

09Audit — verify without asking anyone

An auditor, regulator, funder or insurer can be granted access to a contract or an entire project tree and check every document independently — no chasing counterparties for their copies, no trusting that what they were sent matches what was signed.

A project-level package assembles the complete cryptographic record of a job: every node, every fingerprint, every signature, and a verifier for each. Every claim in it stands on its own evidence rather than on anyone's assurance that the file is genuine.

10The accounting byproduct — triple entry

Conventional bookkeeping is double entry: each party keeps their own record, neither authoritative, disputes settled by comparing two unverified accounts.

A signed Riccy contract is a third entry — a record no party controls that all of them can verify. Where a contract carries financial terms, the structured accounting entry is produced automatically at signing and exports to any external system. No separate step, no reconciliation between two versions of events.

Practical questions

The things you'll ask before you'd use it.

01The terms need to change. Now what?

You don't edit a signed contract. Nobody can, including us — that is the whole basis of the proof. Instead you issue a new contract that names the one it supersedes, and its parties sign it as they signed the first.

The original stays exactly where it was written, permanently. Anyone can follow the chain from the current version back to the very first, so every state the agreement ever passed through remains provable. In a dispute you show what was agreed on a given date, with cryptographic proof, instead of reconstructing it from an email thread.

02Can a contract be deleted or taken back?

Not by any party to it, and not by us. Once anchored it cannot be altered, hidden, or withdrawn — which is precisely what makes it usable as evidence.

For private contracts there is a bounded version of erasure: delete the key and the stored ciphertext becomes permanently unreadable. That has a real limit worth stating plainly: signatories who already hold the Evidence Package keep their copies. Key deletion removes future access through the platform; it cannot retrieve what people were entitled to hold.

03Who decides jurisdiction and dispute resolution?

You do, in the contract. Governing terms — jurisdiction, dispute resolution, termination, and the rule that prose governs — are a section of the signed document, agreed by its parties at signing.

They are not buried in our terms of service. That distinction matters in a dispute: what governs the agreement is inside the thing the parties signed, not in a platform policy one of them never read and we could change later.

04What if the machine-readable values contradict the prose?

The prose wins. Always.

The parameters are instructions to software; the prose is the legal obligation. Where they disagree, the obligation is what was written in words. This is not our assumption about how you'd want it read — it is stated in the governing terms of every contract and signed by its parties, so it holds in front of a court rather than only inside our system.

05One contract in a project changes. What happens to the others?

Nothing, unless the parties to those contracts sign something. Each node in a tree is an independent agreement between its own parties. Amendments do not cascade down or up.

That doesn't leave the tree stranded. If a change upstream means a downstream agreement has to change too, those parties issue their own new contract — referencing the one above it, or superseding their own previous version, or both. The link is made by reference, and the consent is given by signature. What you cannot do is have a change propagate into someone's agreement without them signing for it.

The corollary is the protection: you cannot amend someone else's contract. A client cannot rewrite the terms between a contractor and their supplier, and a contractor cannot quietly alter what they agreed with the client by changing something further down.

06Can a party be removed from a project?

They can be barred from entering into new contracts within a project, and that exclusion is itself a signed, timestamped, auditable record — who excluded whom, when, and why.

The honest limit: exclusion runs forward, not backward. A signed contract cannot be retroactively voided without the other party's consent unless that contract already contains a termination clause granting the power. Whatever consequences exclusion carries — barring new work only, suspending existing work, or triggering termination — must be defined in the root contract and agreed by everyone joining the project, in advance. Nobody can invent that power after the fact.

07Who can see what, and can access be withdrawn?

There are two kinds of access, and they behave very differently.

If you signed it, your access is permanent. You hold the Evidence Package. Nobody can revoke it — not the other party, not the client above you, not us.

If you were granted sight of a contract you didn't sign — an auditor, a client looking down the tree — that access is served through the platform and can be withdrawn. Withdrawing it stops future access, including to later versions and new contracts; it does not unsee what has already been seen, and it cannot claw back anything already delivered.

A party is one or the other, never both. Beyond that, visibility is set when a contract is signed and can only be changed the way anything else changes: by a new agreement its parties sign.

08Do you hold our keys?

Yes, and we would rather say so plainly than imply a trustlessness we do not have.

Signing keys are generated and held for you, so that signing works from any device and a key cannot be lost with a browser. This is what every established e-signature platform does, and it carries the same cost: while we hold a key, we are technically capable of using it. What follows from that is a matter of audit trails and controls rather than mathematics — which is exactly the position the rest of the industry is in.

For private contracts we also hold the content key, the one that decrypts the document. That is what makes platform-served views possible — a client or an auditor granted sight of a contract they did not sign is served the plaintext rather than handed a key they would keep forever — and it is what makes key deletion work as erasure.

Here is where it differs from the alternatives. Holding keys affects who we can show a contract to and what we could in principle sign. It has no bearing on whether an existing agreement can be verified. Verification runs on the fingerprint and the signatures already in the document, so anyone holding an Evidence Package can prove their contract with no key of ours, no cooperation from us, and no dependence on us existing. A platform that holds your keys and holds the only copy of your proof is a very different proposition from one that holds keys and gives the proof to you.

Parties who want to remove the dependency entirely can bring their own key — a hardware token or an existing certificate — and sign without one ever being generated here. Public contracts involve no content key at all.

09What happens if Riccy goes away?

Your contracts are unaffected. They stay where they were anchored, the signatures stay valid, and the verifier in your Evidence Package keeps working — it runs offline and makes no calls to us.

What you'd lose is the convenience layer: composing new contracts, the interface, granted views for non-signatories. What you keep is everything that constitutes the proof. That is the difference between a record and a subscription.

Where it sits

Against the alternatives.

 E-signature platformsSmart contractsRiccy
Readable by a courtYesNoYes
Machine-readableNoYesYes — same document
Verify without the vendorNoNeeds a live chainYes — offline, no infrastructure
Counterparty setupAccountWallet and gasAn account and an email code to sign; nothing at all to verify
Identity verificationPaid add-onNoneOptional, pluggable
BlockchainNot usedRequiredOptional — never required to verify
Contents kept confidentialVendor can read themPublic on chainYour choice — public, or encrypted for parties only
Proof if the company diesGoneSurvivesSurvives
Produces accounting dataNoRarelyAutomatically

Scope

What it does — and doesn't.

Riccy does

  • Produce agreements that are readable, signed, and independently verifiable
  • Compose them from templates and presets, so a valid Ricardian contract doesn't require writing one from scratch
  • Deliver proof each party holds permanently, with no dependence on us
  • Bind a party to a verified identity where the stakes call for it — checked by us, or by a government eID or organisational credential
  • Publish a contract openly, or encrypt it so only the parties can read it — decided per contract
  • Generate structured accounting records where financial terms are present
  • Support hierarchies of related contracts with per-node privacy

Riccy does not

  • Hold, move, or guarantee money — the record layer is deliberately non-custodial, though a separate settlement layer is being explored
  • Give legal advice — templates are a starting point, and a lawyer should still read anything consequential
  • Act as an accredited identity authority — issuing a government eID or an organisational credential requires accreditation we don't hold, so for that level we connect to providers who do, as the established platforms also do. Becoming accredited is a route open to us later, not a claim now
  • Claim to remove trust — the platform's role is bounded to signing and submission, and its output is verifiable without it
  • Require a blockchain to be running for a contract to be verified

Limitations and open questions

What isn't settled.

Settled and demonstrated on this page: the contract format, the canonicalisation and hashing that make verification deterministic, the signing and verification model, the Evidence Package and what it contains, the privacy model, and the three structural decisions that let the format change without invalidating anything already signed. What follows is what remains open — stated here rather than left for someone to find.

Enforceability is jurisdiction-specific

Whether a signature of this kind carries full legal effect depends on local law — under eIDAS, a qualified electronic signature generally requires a certified provider and verified identity, which the default flow here does not meet. The honest position is that these records are strong evidence everywhere and self-enforcing nowhere in particular until that question is answered for a given jurisdiction.

Trust is bounded, not eliminated

Two dependencies are real and worth naming. Signing keys are generated and held platform-side, so the platform is technically capable of signing. And the platform renders the document a party reads before they sign it, so in principle it could display one thing and commit another. Both are true of every hosted signing service, and neither is closed by cryptography alone.

What bounds them is that they apply to the moment of signing, not to the record afterwards. The Evidence Package contains the exact bytes that were signed, so a party can check after the fact what they actually committed to, and any discrepancy is provable rather than deniable. Parties who want the dependency gone entirely can bring their own key. The claim is bounded, auditable trust — not trustlessness.

Storage is a separate dependency

Permanence rests on a storage network with its own economics and failure modes, distinct from the platform's. Keeping those two dependencies separate is a design goal; neither is eliminated.

Format interoperability is unresolved

RAM is human-first by design and is not a Verifiable Credential. Whether attestations should emit a VC-compatible view, so they can be checked by the tooling institutions are standardising on, is a real fork and has not been decided.

Not implemented

The format, the proof architecture and verification are worked out and demonstrated here. The signing service, storage integration, contract hierarchies and the API are designed but not built. Nothing on this page should be read as a shipped system.

Templates are not legal advice

The composer produces structurally sound agreements, and the clause library would need review by a qualified lawyer in each target jurisdiction before real use. Local requirements — Italian rules on unfair terms requiring separate approval, for one — are not handled.

Settlement is deliberately out of scope

The record layer does not move money, which keeps it outside payments regulation. A separate settlement layer that binds payments to these records is the intended next piece, and would carry that regulatory weight in its own right.

The document is the proof.

Everything else is infrastructure that serves it.

Riccy is an exploratory design study, working out what Ricardian contracts become as a product — the format, the proof artifact, and the architecture behind them. The primitive is Ian Grigg's, set out in 1995, as is Triple Entry Accounting; the contribution here is the synthesis and the design decisions, not the underlying idea. It grows out of ongoing research into triple entry accounting as a general theory of verifiable commitments: that a signed, independently held agreement is a third entry whether or not any money is involved.

If any of this is close to what you think about — building it, funding it, testing it against a real use case, or arguing with it — get in touch.

hey@heypaul.xyz