Jump to content

Ricardian contract

From Wikipedia, the free encyclopedia

The Ricardian contract, as invented by Ian Grigg in 1996, is a method of recording a document as a contract at law, and linking it securely to other systems, such as accounting, for the contract as an issuance of value.[1][2][better source needed] It is robust through use of identification by cryptographic hash function, transparent through use of readable text for legal prose and efficient through markup language to extract essential information.

A Ricardian contract places the defining elements of a legal agreement in a format that can be expressed and executed in software.[3]

The method arises out of the work of Ian Grigg completed in the mid-1990s in contributions to Ricardo,[4][better source needed] a system of assets transfers that was built in 1995-1996 by Systemics and included the pattern.


A Ricardian contract can be defined as a single document that is[1]

  1. a contract offered by an issuer to holders,
  2. for a valuable right held by holders, and managed by the issuer,
  3. easily readable (like a contract on paper),
  4. readable by programs (parsable like a database),
  5. digitally signed,
  6. carrying the keys and server information, and
  7. allied with a unique and secure identifier


The Ricardian contract separates the agreement of parties across time and domain. On the left of the "Bowtie" representation,[clarification needed] the negotiation and formation of a legally binding contract leads to a single parent document that defines all of the intent of that agreement. On the right, the performance of that agreement might involve many transactions to be accounted for, logically separated from the meaning of the issue.[citation needed] The join between the legal world and the accounting world is formed by the hash — each transaction locks in the terms and conditions of the precise deal of the parties by including the hash of the contract in every relevant transaction record, yet the operation of the transactions and the issuance of the contract are cleanly separated and thus perverse incentives are eliminated.[5]

BowTie diagram of Ricardian contract elements & generatives

Legal relationship[edit]

The role of the Ricardian contract is to capture the contractual relationship between contracting parties to assist later performance of that contract by programs.[citation needed] In its contractual form, it is the recording of an offer from an issuer to a holder. The offer is signed digitally within the format by the offerer, typically using a plaintext digital signature such as provided by OpenPGP.

The acceptance of the contract is typically formed by signing/agreeing to a transaction that refers to the hash of that contract. Within the context of a high-performance payment system, a secure payment will cite the hash of the contract of the instrument being paid, as well as paying and payee parties and a quantity of units.[6] In a smart contracts system, the acceptance would be performed by operating the contract's code to move the state of the agreement forward.

Relationship to smart contracts[edit]

Smart contracts, as defined in the work of Nick Szabo are an abstract concept relating to the automated performance of an already agreed contract,[7] whereas the Ricardian contract is a design pattern to capture the intent of the agreement of the parties, before its performance.[citation needed]

By means of hashes within as references or links to external documents, above, the Ricardian contract form easily extends to refer to code.[3][8][better source needed] The explicit referral to the code can pass legitimacy from overarching legal prose to the code, thus implementing the concept of the smart contract.[9]

Refactoring to describe blockchains and to integrate references to smart contract logic created a hybrid version of the Ricardian contract.[8][10] This form proposes a tuple of {prose, parameters, code} where the parameters can particularise or specialise the legal prose and the computer code in order to create a single deal out of a template or library of components.[3] Also known as a Ricardian triple, it can describe blockchains, smart contracts, IoT devices and persons.


  1. ^ a b Grigg, Ian (2004). "The Ricardian contract". Proceedings. First IEEE International Workshop on Electronic Contracting, 2004. IEEE. pp. 25–31. doi:10.1109/WEC.2004.1319505. ISBN 0-7695-2184-3.
  2. ^ Chohan, Usman W. (11 December 2017). "What is a Ricardian Contract?". Cyberspace Law eJournal. Social Science Research Network. SSRN 3085682.
  3. ^ a b c Clack, Christopher D.; Bakshi, Vikram A.; Braine, Lee (2016). Smart Contract Templates: foundations, design landscape and research directions. arXiv:1608.00771.
  4. ^ Grigg, Ian (February 2000). Financial Cryptography in 7 Layers. Proceedings of Financial Cryptography Conference 2000. LNCS. Vol. 1, 962. Anguilla, British West Indies: Springer Verlag.
  5. ^ Franco, Pedro (2014). "14.5 Open Transactions". Understanding Bitcoin: Cryptography, Engineering and Economics. John Wiley & Sons. pp. 240–241. ISBN 978-1-119-01916-9.
  6. ^ Howland, Gary (1996). "Development of an Open and Flexible Payment System". Systemics.
  7. ^ Szabo, Nick (1994). "Smart Contracts". Archived from the original on 6 March 2016. Retrieved 13 June 2016.
  8. ^ a b Grigg, Ian (2015). "The Sum of all Chains – Let's Converge". Coinscrum.
  9. ^ Brown, Richard Gendal; Carlyle, James; Grigg, Ian; Hearn, Mike (2016). "Corda: An Introduction" (PDF). Archived from the original (PDF) on 6 June 2017.
  10. ^ Grigg, Ian (2015). "On the intersection of Ricardian and Smart Contracts".