Blog: EOS Block Producer Tips & News


Introduction to Ricardian Contracts

May 18, 2018 / by Marc-Olivier Archambault

Ricardian Contracts announced that the EOS blockchain infrastructure would support the use of Ricardian Contracts. We at EOS Canada believe that it’s worth taking the time to understand what a Ricardian Contract is, and why the community should care about this important addition to the infrastructure.

What is a Ricardian Contract

Simply put, Ricardian Contracts are digital documents that define the terms and conditions of an interaction between two or more parties, written in human readable text, which is then cryptographically signed and verified. It would need to be easily readable for both humans and programs, and should aid in providing clarity to any situations that may arise.


With the recent meteoric launch of cryptocurrency and blockchain information on mainstream media, we are led to believe that all of this technological progress has been made in recent years. In truth, the current cryptocraze that we are experiencing is the result of many years of work behind the scenes. Some of today’s most popular and known blockchain concepts such as Proof of Work and Smart Contracts had been thought up by digital visionaries all the way back in the early 1990’s.

This is the case of the Ricardian Contract, which was created as part of the Ricardo payment system in 1995 by Ian Grigg, one of the early pioneers in financial cryptography. A programmer by trade, Grigg developed the Ricardian Contract while he was at school studying to get his MBA.

Grigg first learned about the digitalization of assets from one of his friends that was working at a company named DigiCash. DigiCash was developing a system to create electronic payments, but the company filed for bankruptcy in 1998 when the concept of digital cash failed to takeoff. According to Grigg, DigiCash’s vision was too narrow since they were only focusing on cash and not on other types of financial instruments.

Grigg quickly realised that the financial world as a whole could benefit from this kind of technology, and began working with his friend Gary Howland. He first published and talked about Ricardian Contracts in his work titled Financial Cryptography in 7 Layers, back in 1998.

In an effort to find the answer to the digitization of asset issuance, Grigg decided to try and issue bonds on the internet. He studied closely what defined a bond, and he came to the realization that it was, just like all financial instruments, a contract. If he was able to find a way to digitize a contract, he would be able to fully digitize any financial asset or instrument.

Grigg was ahead of his time, but he didn’t have the tech solutions necessary to bring this project to reality. Thanks to our current technological capabilities and resources, this concept is no longer only theoretical, but it can be implemented with the help of blockchains, such as EOS.

Merging Smart Contracts with Ricardian Contracts

First off, let's make the distinction between a Smart Contract and a Ricardian Contract. A Smart Contract is a machine readable set of instructions that organizes and controls the arrival of events, and the initiation of actions. A Ricardian Contract is a document that outlines the intentions and the actions that will be undertaken. The Ricardian Contract is the best effort to record the agreement, and the smart contract is the execution of said agreement.

Smart Contracts are used to automate actions, but they have their limitations since we can’t predict all the possible outcomes and what the future holds. We can’t automate something that we are yet not aware of. This results in major problems when an unforeseen event comes up. A Smart Contract on its own is not properly geared to deal with this type of situation, since there is no underlying legal foundation on which we can rely on.

The incorporation of the Ricardian Contract to the current usage of Smart Contracts is a big deal since it will bring some much needed detail to the underlying intentions of these contracts. Smart Contracts don’t answer some of the most important questions of an agreement between parties: What is the contract’s intention? What, if any, consequences may be applicable? What is the defined scope of the contract? Who are the involved parties, and their approved representatives? Under which regulations would we resolve a dispute? This lack of documentation and research is responsible for a lot of fraud and abuse in the cryptoverse. Documents that will bind the agreement to some known set of rules, and that give credibility to the agreement, are necessary if we want these contracts to hold up in a local court should the need arise to resolve an issue off-chain.

The Ricardian Contract will give value to the issuance of an asset over the internet by laying out a guideline to what exactly you are purchasing/exchanging. By merging both Ricardian Contracts and Smart Contracts, we will combine the best of both, and be able to safely conduct trade on the internet, without the need for trust.

Note: In the video Mr Cox stated that the video was ‘Internal-only.’ We have reached out and received his approval to share.

How does a Ricardian Contract work?

While figuring out how to issue bonds on the internet, Grigg realized that these physical bonds, just like any other financial instruments, are a mix of parameters (Name, coupon, date, etc.), and legal prose. The Ricardian Contract is a document that is written with the standard legal prose that is required in a court of law, but is then hashed to be available for usage by software.

The initial goal of a Ricardian Contract is to be readable by humans since this is where most of the difficulties arise in dispute resolution. For a contract to be valid, there must be intent understood by all parties. Humans involved have to understand what the spirit of their agreement is, and what they are signing. Once it is understandable by humans, you would only need to insert the required markups in order to make it readable by computer software.

The issuer would create a framework text, that could then be filled out by themselves or by the holder, adding prompts when needed to ensure that holder is aware of its contents.

Security of the Ricardian Contract

A Ricardian Contract is extremely secure because of the cryptographic signature. Each document would be uniquely identifiable by its hash. This means that it is impossible for someone to arbitrarily change the document after it has been agreed upon by all parties. This protects owners from a change of heart by the issuer.

Issuers sometimes use a tactic called frog boiling, which involves using their upper hand to progressively change the terms of the deal in their favor during the execution of the agreement. All parties, and any independent reviewers, would be able to ensure the exact contents of the agreed upon contract.

The signing of Ricardian Contracts is done with private keys. By adding the signature of the provider of the contract to the document, it creates a binding and legible offer with regard to the information that is described in the document. With the help of the private key, it is possible to track the parties involved and hold them accountable.

A Visual Representation of the Ricardian Contract


Who Will Enforce the Ricardian Contracts?

Arbitration will be the recourse mechanism in place in the EOS ecosystem. It is not yet clear how arbitration will be fully integrated into the EOS ecosystem, nor how users could file claims, so there aren’t any firm answers at the moment.

One thing that is clear though, is that through the integration of Ricardian Contracts, users will have pre-arranged and pre-defined agreements that they would be able to provide to the arbiters. This will allow for impartial arbiters to easily determine original intent and obligation. They will have the ability to line up both the Ricardian Contract and Smart Contract to figure out where the dispute may stem from.

Current Use Case

OpenBazaar - a peer-to-peer e-commerce platform where you can trade anything from regular goods to speculative contracts, is using Ricardian Contracts as a tool to track the liability of parties when they exchange goods with each other.

Whenever there is a trade on OpenBazaar, there is a Ricardian Contract created to track the legitimacy of the agreement that has been signed by both parties. This brings added security that neither of the parties is getting scammed, and that in the case of fraud, an aggravated party would have legal records to plead his case in a court of law.

If you’d like to read more about how OpenBazaar has integrated Ricardian Contracts into their platform, please check out this blog post they put out that describes it.

The Future of Ricardian Contracts in EOS

Going forward, Ricardian Contracts will be an important part of agreements made using the EOS blockchain. The support of Ricardian Contracts by EOS will help bring some much needed legal definitions to deals made atop its infrastructure.

As coding for Ricardian Contracts continues to be added to the source code, we will get a better understanding of how to implement and make the best out of this practice. EOS Canada is excited to see Ricardian Contracts added to the ecosystem, and hope we’ve helped to shine a light on to how we will all interact with them.


Ian Grigg wrote an article in which he walks through how Ricardian Contracts should be laid out so that they would be both human and machine readable.

If you are interested in reading further about the genesis, development, and use of Ricardian Contracts, we have left a list of some resources that we consulted:

Topics: EOS network, EOS Blockchain, English, Ricardian Contracts, Smart Contract, Ian Grigg, OpenBazaar, DigiCash, Education

How To Vote For EOS Canada

Vote for EOS Canada as a Block Producer with the user account:

Vote with - a command line tool for securely storing your private keys and casting your vote