This guidance will help you to migrate your existing solution to use the latest version of Clause.

As a participant of the Clause Closed Beta, we would like to thank you for your feedback and support which has been invaluable as we built out the Public Beta. We sincerely hope you love the results as much as we do!

We've made lots of changes in the Public Beta to improve security and usability of Clause.

  1. Change to the Execute API Route. 'Execute' is an overloaded term in the legal and technology industry. So to reduce the chances of misunderstanding we now use 'Trigger' to refer to the inbound invocation of Smart Clauses®.

    We've changed the API path to match this new terminology:
    - https://api.clause.io/api/clauses/:id/execute
    becomes
    - https://api.clause.io/clauses/:id/trigger

    Requests to the old path will fail.
  2. Access Tokens for Smart Clause triggers. Previously, the access token that was required to authenticate against the 'Execute' API was only valid for two weeks and could be provided as query string parameter, e.g.  https://api.clause.io/api/clauses/:id/execute?access_token=TOKEN

    To increase security, we now only permit access tokens to be specified in an  Authorization  header. Furthermore, each Smart Clause now has a unique access token.

    Further information is available in the API Documentation
  3. Cicero Upgrade. The closed-beta version of Clause used the 0.2.8 version of Cicero. A lot has happened in the open-source community since then (see the Cicero release notes). Clause now runs Cicero 0.8, and currently supports only Cicero Templates compatible with that version. You should create new contracts in Clause and validate the request and response models against your client code. See the Accord Project template library for the latest documentation.
  4. Stateful Contracts. Contracts on Clause that are RUNNING (i.e. they've been signed), are now stateful. This means that your HTTP trigger request may no longer be idempotent. For example, if you send the same request to a Smart Clause multiple times you may get different responses, this behaviour is determined by the Ergo logic of the Smart Clause template.

    For testing and demonstration purposes we allow Smart Clause triggers while a contract is in the DRAFTING state.

    Requests to a draft contract:
    - do not change the contract state
    - are recorded in the contract's timeline
    - do not trigger Smart Clause actions
    - will return a warning message to the client.