Introducing the Agreement Engine
By: Joshua Tan
Tags: Smart Contracts, Blockchain, Governance, Technology, Law

By Joshua Tan and Luke Miller

Agreements and contracts are everywhere, but they are built on layers and layers of legal and social institutions. Software is slowly entering into this stack. In this post, we introduce the Agreement Engine, an open-source software service for stitching together systems of modular agreement systems, as well as some of the social and legal theory on why and how agreements work.

Agreements are the building blocks of modern societies. Whenever you want to work with other people — whether it’s starting a business, building open-source software, or slaying a (virtual) dragon — you will need to first form an agreement with those people to communicate expectations, safeguard rights, and divvy up rewards. When we change the agreements that people can form, for example through policies that affect communication technology, social trust, or the rule of law, we change the kinds of economies and politics that people produce.

But what determines the agreements that people can form? Or, to put it another way: for a given kind of agreement (legal, informal, computational, etc.), how can we build systems for authoring and enforcing such agreements? Such systems range from a state’s business registration process, to the small claims court system, to the Ethereum smart contract system, to the guild systems of online games like World of Warcraft or EVE Online. In this article we’ll cover the art and science of how to build these systems as well as sticky questions about the user experience (UX) of legal contracts versus smart contracts versus informal agreements. This matters because:

If you’re a lawyer, legal contract systems are important, but legal contract systems are evolving to become more computational.

If you’re a blockchain enthusiast, smart contract systems are important, but the smart contract systems are evolving to become more “legal” — and not just because governments are getting involved.

If you design or operate online platforms of any sort (blockchains, MMOs, and beyond), your platform’s virtual economy will never take off if your users can’t coordinate and collaborate with each other.

If you’re a normal person, neither legal nor smart contract systems are particularly user-friendly or cheap. And that has significant consequences for a just internet.

At the end of this post, we’ll share a preview of Agreement Engine, a software service that converts any web resource into an enforceable contract, and place it within the larger project of building web-native “legal” systems. Agreement Engine is part of Metagov, a cross-platform toolkit for online governance.

What is an agreement, really?

What do the following have in common?

A signed rental contract A one-line email: “cool, meet you at 9pm outside the bar” A (multi-party) smart contract, e.g. this DAO A bid on eBay A gif of two men exchanging a knowing look

Figure 1. Walter and Jessie exchange a knowing look (from Breaking Bad).

Answer: they are all manifestations of mutual assent, a.k.a. agreements. Mutual assent is just a piece of jargon that means “we agree” — it’s an abstract relation or meeting of the minds between two or more subjects where the subjects share a common intention or a common belief. Agreements are manifestations of mutual assent, meaning that they bear witness to the claim that a common intention or belief exists. To put it another way: every agreement constitutes evidence of mutual assent.

Many agreements also incur obligations, where an obligation is an action that one has to do. These obligations usually come with mechanisms for enforcement, where enforcement is the act of compelling compliance with an obligation. For example: an email thread between two friends agreeing to meet at a bar (1) is explicit evidence of mutual assent and (2) creates a social obligation to meet at said bar where (3) the obligation to show up is enforced by an implied social norm: don’t break promises to friends or you’ll lose your friends and/or be reputed as a flake. A bid on eBay, on the other hand, (1) is evidence of the bidder’s agreement to buy the item at that price and (2) creates an obligation to pay the seller at that price if they win the auction where (3) that obligation is either enforced automatically through eBay’s escrow system or through eBay’s unpaid item policy.

Figure 2. A glossary of the many terms in this post.

Introducing the Agreement Engine

The (1)-(2)-(3) pattern of agreement-obligation-enforcement is extremely common in society and in the law. We call this pattern a contract system, and we call agreements that fit this pattern contracts. The Agreement Engine is a tool for building contract systems on the internet. For testing purposes, we’ve used Agreement Engine to build some actual contract systems (including the @AgreementEngine bot on Twitter) that end-users can use to produce contracts. [3]

As a tool for building contract systems, Agreement Engine is designed for two kinds of users: (1) platform operators that want to build up their communities and economies and (2) online communities that want a low-effort, minimal governance system that naturally evolves as the community grows.

Technically speaking, Agreement Engine is a software service that wraps a digital resource (usually text representing an agreement) and connects it to a governance service (usually an enforcement mechanism). We call these wrappers joint accounts, to distinguish them from agreements, and we call the process of wrapping an agreement with a joint account registration. Once wrapped or registered, a joint account can be validated and delivered to an enforcement mechanism through a process that we call authentication. [4]

To be clear, Agreement Engine itself is neither a system for authoring agreements nor a system for enforcing them. However, it has built-in interfaces with both authoring systems and enforcement systems (see Figure 3). In that sense, it serves a broadly similar role to both traditional legal notaries, which are trained to witness paper signatures for legal enforcement, as well as online services like DocuSign or HelloSign, which are designed to record digital signatures for legal enforcement. Unlike either legal notaries or digital signature software, which primarily take written or digital text and prepare the document for legal consumption, Agreement Engine is designed to take written or digital content of any sort and prepare that content for consumption by a range of online authorities including community administrators, digital juries, and automated platforms. In that sense, it is similar to other “web-native” arbitration services like Kleros, Aragon Agreements, or Celeste in that it is designed to operate independently of the traditional legal system. Unlike those services, however, it does not specify a deliberation mechanism for judging contract fulfillment or package an enforcement mechanism such as escrow. Agreement Engine is designed to be a lightweight, configurable component within a modular governance architecture.