Standards for Ethereum contracts will be needed very shortly.

Imagine a contract that allows a customer to apply for, and subsequently pay into, a home loan. The contract offers the 2 functions:

  • apply(property, amount)
  • pay(amount)

How does the customers' contract know what functions to call on the home loan contract?

Enter a standard definition for a home loan contract. Think of it like a class interface but for contracts: a contract for a contract: a super contract? :)

A developer working on a home loan DAPP would be best placed to extract such a super contract.

Following this, a "contract ratifier" contract would check a contract against a specification for correctness and issue a verifiable token as certification. This is akin to unit tests :)

The practices and paradigms for writing software until now are just as applicable to this brave new world of decentralised applications :)