⛓️Blockchain Protocol

Learn more about the blockchain protocol underpinning OpenTrade products.

OpenTrade's blockchain protocol is a fork of Perimeter, an open-source blockchain protocol developed by Circle Research, a division of Circle, to support USDC lending markets and applications. The protocol is largely built on composable, open-source standards, including ERC-20, ERC-4626, and Verite.

The fork of the Perimeter protocol that OpenTrade runs on is developed and maintained by Open Trade Technology Ltd.

Overview

The protocol can support a wide variety of on-chain structured credit and lending products, including but not limited to:

  • Lending with both real world assets ("RWA") and digital assets

  • Collateralised and uncollateralized loans

  • Single-sided and multi-sided credit markets

  • Primary and secondary credit markets

  • Fixed term loans and open loans

We intend to continue to extend and enhance Perimeter to support an increasingly wide variety of use cases across both RWAs and digital assets.

ERC-4626

ERC-4626 is an open-source standard for yield bearing token vaults. It is an extension of ERC-20 token standard. It has been designed to optimise and unify the technical parameters of yield-bearing vaults.

It provides a standard API for tokenised yield-bearing vaults that represent units of a single underlying ERC-20 token. ERC-4626 also outlines an optional extension for tokenised vaults utilising ERC-20, offering basic functionality for depositing, withdrawing tokens and reading balances.

A yield-bearing vault is a smart contract that allows users to deposit different ERC-20 tokens into a pool of tokens in exchange for vTokens (vault tokens). Vault tokens give their holders a claim on underlying asset tokens held by the vault, plus any profits the pool has earned, minus any losses, defaults, and fees.

Vault tokens can be converted to asset tokens, and asset tokens can be converted to vault tokens, with the exchange occurring at a predetermined exchange rate.

The standard is fully described in EIP-4626 as published and maintained by Ethereum.org.

Perimeter Implementation

In Perimeter, each ERC-4626 yield bearing vault is known as a liquidity pool. When lenders deposit ERC-20 stablecoin tokens (USDC, EUROC) into the liquidity pool, they are issued ERC-20 tokens called liquidity pool tokens in return. Each liquidity pool token represents a unit of ownership in the vault and its underlying assets, which are principally collateralised and uncollateralized USDC loans and USDC.

OpenTrade refers to liquidity pools as vaults and liquidity pool tokens as vault tokens.

Loans are structured and disbursed to borrowers from these vaults. As loans are issued, loan repayments are made, and interest is accrued, the Net Asset Value (NAV) of each vault increases, meaning the value of each vault token increases by a corresponding amount. As defaults occur, the NAV of each vault decreases, meaning each share of the vault decreases by a corresponding amount.

When a lender withdraws from the vault, they exchange their vault tokens for the underlying asset token (USDC) at the current exchange rate.

The exchange rate of vault tokens / asset tokens is: Net Asset Value (NAV) / Outstanding Pool Tokens, where NAV is equal to (outstandingLoans + interestAccrued) - (Defaults + Fees)

Protocol Roles

Protocol Operator: The protocol operator is responsible for deploying, maintaining, and upgrading the protocol. Open Trade Technology Ltd. serves as the protocol operator.

Pool Admin: Specialised entities that create and manage vaults, source borrowers, and manage liquidity in the protocol. Open Trade Technology Ltd serves as the pool admin for all OpenTrade products.

Borrowers: Entities that receive stablecoin loans from liquidity pools and repay those loans plus interest. Borrowers on the OpenTrade platform are bankruptcy remote SPVs overseen by FCA regulated Five Sigma. Currently the only approved Borrower is OpenTrade SPC.

Lenders: Lenders provide liquidity by depositing tokenised cash (USDC and EUROC) to earn interest. Lenders are KYC’d Web3 institutions, businesses, and HNWI. For more information on who is eligible to become a Lender on OpenTrade, please see Eligibility Requirements.

Key Smart Contracts

Perimeter consists of a suite of smart-contracts deployed on Ethereum and Polygon that support the end to end lending transaction lifecycle. Below are the key smart-contracts the make up the Protocol.

For each OpenTrade product, the specific smart-contract addresses associated with the product will be listed and visible through the web app.

NameFunction(s)

Vault Factory

  • Configure vault parameters (asset type, start/end date, capacity, fees)

  • Create/update loan vaults

Loan Vault

  • EIP-4626 yield bearing vault

  • Accepts USDC/EUROC and issue ERC-20 vault tokens

Loan Factory

  • Configure loan parameters (APY, type, maturity date, etc;

  • Issue/update loans

Loan Object

  • On-chain representation of loans, including their parameters

  • Loans have statuses that change over the transaction lifecycle

Borrower Vault

  • Loans are drawn from the Loan Vault to the Borrower Vault

  • An MPC wallet controlled by the Borrower

Fee Vault

  • Fees are automatically sent to the Fee Vault when loans are repaid / rolled over

  • Fees can be withdrawn by the Admin at specfic points in the transaction lifecycle

Access Control

  • List of white-listed addresses & which contracts they can interact with

  • Only white-listed addresses can interact with the protocol

  • Access is checked on every transaction

Withdrawal Controller

  • Responsible for receiving and processing early withdrawal requests and rollover termination notices

USDC Token Contract

  • USDC Token Contracts on Ethereum and Polygon

EUROC Token Contract

  • EUROC Token Contracts on Ethereum and Polygon

Extensions made to the Perimeter by OpenTrade

OpenTrade has forked and extended the Perimeter Protocol to support specific flows utilised by the Treasury Management Product. The most notable changes made by OpenTrade include:

  • Introducing the concept of automatic loan rollover

  • Ability to net inflows and outflows

  • Additional date/time events in the lending lifecycle

  • Advanced accounting functionality to support more efficient off-chain operations

  • Simplifying the exchange rate mechanism to provide more predictability in yield to maturity

These extensions are designed to:

  1. Improve the user experience, ensuring that Lenders who would like to rollover their principal and interest into the next loan cycle can do so automatically and;

  2. Improve efficiency with regards to transaction costs, both on and off-chain, by ensuring that the movement between real-world assets, USD, and USDC is minimized to only the level necessary to process inflows and outflows at maturity and during early withdrawal requests.

  3. Better support operations involving off-chain financial assets like US Treasury Bills with additional date/time events and advanced accounting functionality

Last updated

© OpenTrade 2023