Run Tradelink as an Administrator

How to Build Your Off-Exchange Trading Network

Get onboarded to Ledger Enterprise v.5.0 or higher versions to access Ledger Tradelink (TL) module (contact our Client Success and Technical Account Managers to get onboarded).

When accessing Ledger Enterprise v.5.0 or higher versions, the Ledger Tradelink module will be available at the top left hand menu. Monitor Accounts

Monitor Accounts

Ledger Tradelink module will be available on the left hand menu of the Vault main page.

monitor accounts

When selecting the Ledger Tradelink option, a dashboard will be displayed to the users (administrators). The dashboard will allow operator users to see available and pledged balances of the accounts and to control in one place all the collateral account statuses and active operator users for those accounts.

Connect Your Network

At the bottom of the screen, users (administrators) can select one or multiple organizations they would like to add to their Tradelink network. If an organization the users try to add is not yet connected to the Tradelink API service, the users will be taken to a request page where they can enter the necessary information to share with the external party (level of interest, expected level of business, etc.) so they can join the Tradelink network: Ledger Enterprise TRADELINK.

Note: To start with Tradelink at least 1 exchange and 1 asset manager must be set up as an API/UI operator and as a group on the platform, more on this in the following section.

connect network

Setup Network Roles

Once the network participants are confirmed, a user (administrator) will need to define the role that each participant will have on the network. As mentioned, in the current version, the Tradelink module recognizes three roles: Asset Manager, Custodian, and Exchange (defined in the Introduction session).

For each role, a group of operators (* UI or API operators) will need to be defined on the platform in addition to their respective whitelisted addresses.

Each group will be added to the Tradelink collateral account ruleset to define their rights and responsibilities in the network based on their roles.

For each group, at least one (1) API Operator will need to exist to interact with the current version of Tradelink (* v.5.0) to fetch Tradelink data (GET) and create/approve requests (POST):

1 API Operator - Asset Manager 1 API Operator - Custodian 1 API Operator - Exchange

  • Instructions on how to register an API operator → here
  • Instructions on how to create a group → here
  • Instructions on how to create a whitelist → here

In the first version of Ledger Enterprise v.5.0 collateral pledging will only be available via API. Pledging via UI will only be available as part of upcoming releases.

Create Collateral Account

collateral account

Now the Custodian administrator can proceed to create a Tradelink collateral account.

At this stage, previously defined groups must be assigned to the roles (Asset Manager = Pledge Creator, Exchange = Settlement Creator).

collateral asset mngr collateral exchange collateral new account

Once the roles are defined, the administrator will need to confirm each of the 4 following rules that relate to the request types that will be offered on the Tradelink service:

  1. Pledging Rules
  2. Settlement Rules
  3. Withdrawal Rules
  4. Arbitration Rules

Those rules will be pre-populated with the creator’s and approver’s rights based on the groups selected during the initial assignment of group roles (AM, CU, EX).

No additional configuration on governance rules is required except for the Settlement rule.

Settlement Pre-Approval Rule

The Settlement rule offers the option of adding a “pre-approval” step for the Asset Manager, and this will need to be enabled during the setup process if needed. This is optional and set to be disabled by default, if required it will need to be toggled on.

This option allows the Asset Manager (authorized group) to pre-approve a settlement request before the Custodian gives the final approval. There are several conditions where this could be required, for example:

  • Custodian Risk Reduction: a custodian might wants to ensure an Asset Manager has reviewed and agreed to the terms of the settlement request before giving final approval.
  • Exchange Risk Reduction: an exchange might want to have a pre-approval from the Asset Manager before broadcasting a settlement transaction. This will not guarantee final approval from the custodian but will give confidence to the Exchange that in the approval flow the Asset Manager already agreed on the term of settlement and provided first approval, and now the risk is limited to the custodian approval.

settlement rule

Once the Custodian administrators has carefully reviewed each rule definition, they can proceed to confirm and approve the Collateral Account/Account rules’ creation request on their PSD.

This will follow the standard governance rules acceptance procedure on the Ledger Enterprise Solution.

Once approved by the administrator quorum via their PSDs, the rules defined will be enforced by Ledger Enterprise HSM.

The rules of engagement are technically enforced by hardware on Ledger Enterprise 🔐.

collateral confirmation

Workflow for Available Actions

Below is a summary of the workflow for each request type, user (AM = Asset Manager, CU = Custodian, XC = Exchange) and, actions available on the solution:

Pledging:

  • AM creates a Pledge Increment/Decrement request
  • AM approves creation Pledge Increment/Decrement request
  • XC approves Pledge request

Settlement:

  • XC creates Settlements request
  • XC approves creations of Settlements request
  • AM pre-approves Settlements request (optional)
  • CU approves Settlements request

Withdrawal:

  • AM create Withdrawal request
  • AM approves creation Withdrawal request
  • CU approves Withdrawal request

Arbitration:

  • CU create Arbitration request
  • CU approves creation Arbitration request
  • CU approves Arbitration request ( not part of 5.0, to be included in future release )

(* Please note that roles are defined by the collateral agent running Ledger Enterprise solution during the setup of the collateral account rules as described above.)

Below is a summary of the main endpoints and API messages format for Create/Approve a request (Pledging, Settlement, Withdrawal, Arbitration):

Create

  1. Create Pledge Increment/Decrement Request :
    Copy
    Copied
    POST {{base_url}}/requests
    Content-Type: application/json
    X-Ledger-Workspace: {{workspace}}
    Authorization: Bearer {{access_token}}
    Copy
    Copied
    {
    "type": "CREATE_PLEDGE_INCREMENT",
    "data": {
    "pledge_account_id": 1,
    "pledge_data": {
      "amount": "200000000000000",
      "currency": "ethereum_sepolia",
      "account_name": "TL-0001-ETH-OOF-KOM",
      "exchange_name": "Crypto.com"
    }
    }
    }

    amount can be positive or negative.

  2. A positive amount means an increment, so we expect to pledge funds (locking funds, from the available balance of the collateral account to the pledge)
  3. A negative amount means a decrement, so we expect to unpledge funds (unlocking funds, from the pledge to the available balance of the collateral account)
  4. Create Settlement Request :
    Copy
    Copied
    POST {{base_url}}/settlements
    Content-Type: application/json
    X-Ledger-Workspace: {{workspace}}
    Authorization: Bearer {{access_token}}
    Copy
    Copied
    {
    "id": "36a45ef2-0e08-4ff5-bef5-9569c1863388",
    "inbound_transaction_intents": [
    {
      "amount": "12000",
      "to_address": "tb1qhx0mksx6ce79yjsd2an4hxmw98kwxl8munzhzr",
      "to_account_id": 2
    }
    ],
    "outbound_transaction_intents": [
    {
      "from_pledge_id": "{{pledge_id}}",
      "data": {
         "account_id": 1,
         "transaction_type": "ETHEREUM_LIKE_SEND",
         "transaction_data": {
           "currency": "ethereum_sepolia",
           "account_name": "TL-0001-ETH-OOF-KOM",
           "recipient": "0xb550388547691a526190d60C30C2f9E2af03fF3D",
           "amount": "90000000000",
            "max_fees": "{{fees}}"
         },
         "fees_strategy": {
           "type": "SPEED",
           "data": {
             "speed": "FAST"
           }
         }
      }
    }
    ],
    "meta": {}
    }
  5. Create Withdrawal Request : when connected as AM (UI or API), create a conventional transaction targeting one of AM addresses in his whitelist;
  6. Create Arbitration Request : when connected as CU (UI or API), create a conventional transaction targeting one of the right Exchange addresses in their respective whitelist

Approve Requests

All the approvals will follow the LE API Approval Request standard defined here.

The request creation response provides the request_id on the response attribute id. Approvals requires the id of the request_id.

Get a challenge to sign and approve a request id.

Copy
Copied
GET {{base_url}}/requests/{{request_id}}/challenge
Content-Type: application/json
X-Ledger-Workspace: {{workspace}}
Authorization: Bearer {{access_token}}

Challenge should be signed by the user and posted via:

Copy
Copied
POST {{base_url}}/requests/{{request_id}}/approve

The list of Approval events is:

  • *Approve Creation Pledge Request*
  • *Approve Pledge request*
  • *Approve Creation Settlement Request*
  • *Approve Settlement request*
  • *Approve Creation Withdrawal Request*
  • *Approve Withdrawal request*
  • *Approve Creation Arbitration Request*
  • *Approve Arbitration request*

Later in the article we are following with a detailed description of each event based on each role.

Copyright © Ledger Enterprise Platform 2022. All right reserved.