Creating a Milestone Payment Smart Contract
Tags: Blockchain, Contracts, Smart Contracts, Contract Management, Legaltech

— Michael Grover, Lead UX Designer at Clause

In this article, I will describe the process of using the Clause Platform to automate one of our company’s own legal agreements.

During the course of my work at Clause, I employ the services of several design firms for logo design and website design/development. Recently I worked with Dog Studio — an excellent web design firm based in Belgium — to redesign and develop one of our partner websites.

At the outset of this website design project, Dog Studio sent us a letter of engagement contract which defined many aspects of our business relationship, including the scope of work and milestone payment plan for the project. I realized this would be a perfect contract to automate with Clause. As the only designer at Clause I am often busy, and automating this contract would make my job a bit easier.

The payment schedule defined in this contract was milestone-based, meaning that at certain points in the project, Clause would pay Dog Studio a predefined percentage of the total project fee.

Building a Smart Clause® Template

The first step in automating this contract was copying the payment upon milestone clause from the contract that Dog Studio sent us, then using that text as a basis for a payment upon milestone Smart Clause template. I used the Clause Template Studio to build this Smart Clause template with the help of Clause’s CTO, Dan Selman. Smart Clause Templates on Clause are built using the Accord Project Template Specification. Learn more about Smart Clause templates.

Building the Smart Contract

To build the smart contract, I started with the original contract PDF file given to me by Dog Studio. I imported the PDF into Clause and replaced the milestone payment clause with the payment upon milestone Smart Clause template that I made in the last step. I then filled in certain parameters of the Smart Clause template, such as payment amounts and percentages.

The next step was to configure what actions the Smart Clause® executes when a milestone is reached (I’ll explain how the Smart Clause knows a milestone has been reached in the next section).

I configured the Smart Clause so that upon each milestone:

The payer — Clause’s COO, Houman Shadab — is sent an email informing them which milestone has been approved, and how much money to send the payee — Dog Studio. The payee is sent an email informing them which milestone has been approved, and how much money to expect from the payer.

Clause supports several integrations that can make this process even more streamlined, for example if your business subscribes to a payment platform like Dwolla, you can have your Smart Contract automatically pay the payee via ACH transfer.

Building a Dashboard

To tell the payment upon milestone Smart Clause that a milestone has been reached, I have to send an API Post request to the Smart Clause. I adapted an interface Clause uses for another demo to suit this milestone payment case. This UI allows whoever is in charge of approving milestones — in this case me — to do so with a click of a button.

If I wanted to, I could send the API Post request through any method, such as by using the program Postman. A custom UI is not entirely necessary, however I chose to build a UI to make it more user-friendly for other people who might use this payment upon milestone Smart Clause template in the future.

Running the contract

Now that the Smart Clause template, contract, and UI dashboard have been set up, we can run the contract. I sent the contract out for signatures to trigger the first milestone. Once everyone signed, all parties were informed that the payee is due payment for the first milestone.

Once Dog Studio delivered the second milestone, I evaluated their work and approved it, triggering the contract to inform all relevant parties of the payment obligation.

Upon completion of the project — the third milestone — I happened to be on vacation in the Adirondack Mountains, where phone reception is poor. Instead of struggling with bad internet connection trying to send emails to the relevant contract parties, all I needed was enough internet connection to click one button.

When I clicked the “approve milestone 3” button in my milestone payment dashboard, the smart clause was triggered and took care of the rest. I could relax for the rest of my vacation, confident that Dog Studio would be paid for their hard work.