Monax API (v1)

Download OpenAPI specification:Download

Happy Contracting!

Getting Started

We are pleased you have joined the Marmot-y movement.

Authentication

external

Security scheme type: HTTP
HTTP Authorization Scheme bearer

BearerAuth

Security scheme type: HTTP
HTTP Authorization Scheme bearer
Bearer format "JWT"

OAuth2

This API uses OAuth 2 for more information.

Security scheme type: OAuth2
authorizationCode OAuth Flow
Authorization URL: https://login.monax.io/oauth/authorize?audience="monax-api"
Token URL: https://login.monax.io/oauth/token
Scopes:
    implicit OAuth Flow
    Authorization URL: https://login.monax.io/oauth/authorize?audience="monax-api"
    Scopes:
      clientCredentials OAuth Flow
      Token URL: https://login.monax.io/oauth/token?audience="monax-api"
      Scopes:
        password OAuth Flow
        Token URL: https://login.monax.io/oauth/token?audience="monax-api"
        Scopes:

          Agreements

          List agreements.

          Returns information about agreements that:

          • are owned by the authenticated user,
          • are owned by an organization + department(s) to which the authenticated user belongs,
          • include the authenticated user in its signatories, or
          • include an organization + department(s) to which the authenticated user belongs in its signatories
          Authorizations:

          Responses

          200

          agreements retrieved

          Response Schema: application/json
          Array
          activityInstances
          Array of objects (AgreementActivityInstance)

          An array of the currently pending activities which are attached to the agreement and controlled by its process model

          address
          string

          Agreement's address on the blockchain

          archetype
          string

          Address of the parent of the agreement

          archetypeName
          string

          Human readable name of the archetype

          attachmentsFileReference
          string

          Unique reference to the file wrapping up all of the attachments

          createdAt
          number

          Unix timestamp object creation

          creator
          string

          The entity who originally created the agreement

          creatorDisplayName
          string

          Human readable name of the creator of the agreement

          isPrivate
          boolean

          Whether the encryption framework of the agreement is operational or not

          legalState
          integer
          Enum: 1 2 3 4 5

          Every agreement contains a state machine which can only go one way through it's life-cycle. This state machine is very helpful for understanding at a "macro" level where are we within the contract's life-cycle.

          This state machine is controlled by logic which exists on the blockchain and as such is very reliable and visible to all of the parties to the agreement (assuming they have the correct address of the contract).

          The state machine encompasses the following states:

          • Legal State: 1 -> Formulation
          • Legal State: 2 -> Execution
          • Legal State: 3 -> Fulfilled
          • Legal State: 4 -> Cancelled
          • Legal State: 5 -> Defaulted
          maxNumberOfAttachments
          integer [ 0 .. 0 ]

          (Currently not used) The maximum number of attachments which may be placed onto an agreement

          name
          string <= 32 characters

          Human readable name of the agreement. Note that this field is limited to a maximum of 32 ASCII characters.

          owner
          string

          The entity who controls the visibility of the agreement

          ownerDisplayName
          string

          Human readable name of the owner of the agreement

          tags
          Array of objects (AgreementTag)
          default

          unexpected error

          get /agreements

          Monax's API's environments

          https://{environment}api.monax.io{version}/agreements

          Response samples

          Content type
          application/json
          Copy
          Expand all Collapse all
          [
          • {
            }
          ]

          Create an agreement.

          Create an agreement with the fields and data that are included in the body of the request.

          Authorizations:
          Request Body schema: application/json
          archetype
          string

          Address of the parent of the agreement

          createdAt
          number

          Unix timestamp object creation

          governingAgreements
          Array of objects (AgreementGoverning)

          An array of any agreements which are "parents" and as such "govern" the agreement in question. This array is not returned as a hierarchical order. Any entries in this array will be deemed as parents. For more information see here.

          name
          string <= 32 characters

          Human readable name of the agreement. Note that this field is limited to a maximum of 32 ASCII characters.

          owner
          string

          The entity who controls the visibility of the agreement

          parameters
          Array of objects (AgreementParameter)

          An array of objects with each parameter's name, value, and data type. See the AgreementParameter object definition for more information on the data types. Note - If a parameter with type 8 (Signing Party) is given, the corresponding value will be added to the agreement's parties.

          Responses

          200

          agreement created

          Response Schema: application/json
          address
          string

          Agreement's address on the blockchain

          newUsers
          Array of objects

          New users that have been created in line with the creation of this agreement.

          parameters
          Array of objects (AgreementParameter)

          An array of objects with each parameter's name, value, and data type. See the AgreementParameter object definition for more information on the data types. Note - If a parameter with type 8 (Signing Party) is given, the corresponding value will be added to the agreement's parties.

          processInstance
          string

          Address of the agreement's formation process instance

          default

          unexpected error

          post /agreements

          Monax's API's environments

          https://{environment}api.monax.io{version}/agreements

          Request samples

          Content type
          application/json
          Copy
          Expand all Collapse all
          {
          • "archetype": "string",
          • "name": "string",
          • "createdAt": 0,
          • "owner": "string",
          • "parameters":
            [
            ],
          • "governingAgreements":
            [
            ]
          }

          Response samples

          Content type
          application/json
          Copy
          Expand all Collapse all
          {
          • "summary": "An example agreement creation response",
          • "value":
            {
            }
          }

          Retrieve an agreement.

          Agreement information for a single agreement

          Notes:

          • If the password provided is incorrect or a hoard reference which does not exist was passed to the posted Agreement this get will return a 401.
          • If the agreement was not authored by the logged in user or one of their organizations, or if its signatories does not include the logged in user or one of their organizations, this will return a 404.
          Authorizations:
          path Parameters
          address
          required
          string
          Example: 16830871DE9CD69AEBB9920ABA59E88B9923B324

          Address of the agreement requesting

          query Parameters
          meta
          boolean

          Include the metadata under the meta key of each of this agreement's archetypes's documents

          Responses

          200

          agreement retrieved

          Response Schema: application/json
          activityInstances
          Array of objects (AgreementActivityInstance)

          An array of the activities which are attached to the agreement and controlled by its process model

          address
          string

          Agreement's address on the blockchain

          archetype
          string

          Address of the parent of the agreement

          attachmentsFileReference
          string

          Unique reference to the file wrapping up all of the attachments

          collectionId
          string

          If the agreement is part of a collection, the unique identifier of that collection is returned here

          createdAt
          number

          Unix timestamp object creation

          creator
          string

          The entity who originally created the agreement

          creatorDisplayName
          string

          Human readable name of the creator of the agreement

          documents
          Array of objects (AgreementDocument)

          Array of the prose template documents that provide the basis for the human-readable (traditional) contract.

          N.B. these documents when displayed for a user are "assembled" in that they are ran through our documentary assembly processing system before they are displayed to the user in our webApp. This field only returns the "raw" document which needs to be ran through the Monax assembler if one wants to have the "full" contract equivalent to what is displayed in the webApp.

          executionProcessDefinition
          string

          Address of the agreement's execution process definition

          executionProcessInstance
          string

          Address of the agreement's execution process instance

          formationProcessDefinition
          string

          Address of the agreement's formation process definition

          formationProcessInstance
          string

          Address of the agreement's formation process instance

          governingAgreements
          Array of objects (AgreementGoverning)

          An array of any agreements which are "parents" and as such "govern" the agreement in question. This array is not returned as a hierarchical order. Any entries in this array will be deemed as parents. For more information see here.

          isAssignedTask
          boolean

          Understand if the entity retrieving the information has a currently pending task to be completed

          isCreator
          boolean

          Understand if the entity retrieving the information is also the creator of the agreement

          isParty
          boolean

          Understand if the entity retrieving the information is a legal party to the agreement

          isPrivate
          boolean

          Whether the encryption framework of the agreement is operational or not

          legalState
          integer
          Enum: 1 2 3 4 5

          Every agreement contains a state machine which can only go one way through it's life-cycle. This state machine is very helpful for understanding at a "macro" level where are we within the contract's life-cycle.

          This state machine is controlled by logic which exists on the blockchain and as such is very reliable and visible to all of the parties to the agreement (assuming they have the correct address of the contract).

          The state machine encompasses the following states:

          • Legal State: 1 -> Formulation
          • Legal State: 2 -> Execution
          • Legal State: 3 -> Fulfilled
          • Legal State: 4 -> Cancelled
          • Legal State: 5 -> Defaulted
          maxNumberOfAttachments
          integer [ 0 .. 0 ]

          (Currently not used) The maximum number of attachments which may be placed onto an agreement

          name
          string <= 32 characters

          Human readable name of the agreement. Note that this field is limited to a maximum of 32 ASCII characters.

          owner
          string

          The entity who controls the visibility of the agreement

          ownerDisplayName
          string

          Human readable name of the owner of the agreement

          parameters
          Array of objects (AgreementParameter)

          An array of objects with each parameter's name, value, and data type. See the AgreementParameter object definition for more information on the data types. Note - If a parameter with type 8 (Signing Party) is given, the corresponding value will be added to the agreement's parties.

          parties
          Array of objects (AgreementParty)

          An array of objects with each party member's address, user id or organization name, signature timestamp, and address of the user that has signed for the party

          privateParametersFileReference
          string

          Unique reference to the file wrapping all of the parameters which are not used by process models, and therefore not put onto the blockchain underlying Monax

          processes
          Array of objects (AgreementProcess)

          An array of the processes which are attached to the agreement

          signaturesFileReference
          string

          Unique reference to the file wrapping all of the data surrounding the signatures placed onto the agreement by the parties

          default

          unexpected error

          get /agreements/{address}

          Monax's API's environments