Collateral Service

Overview

Providing a mechanism for users to pledge an asset (e.g a digital security) in exchange for another asset (e.g. the loaned asset or currency) for a limited period of time while providing conditions and safeguards for safe operations for all parties.

Pledging operations can enable various use cases such as loans and short selling of a security. Pledgors may utilize their assets in order to finance other operations while retaining the possessory ownership of the pledged asset. On the other hand, pledgees will hold a claim against the asset that might be transferred to them in case of a default.

Collateralization in general and Pledging, in particular, are powerful tools to be added to the FinP2P network toolbox and we envision this tool will evolve to represent broader and more complex use cases on the FinP2P network.

 

Collateral Managers

To facilitate and orchestrate the collateral pledging process and various use cases around it, we are adding a provider type to the network - the Collateral manager. A collateral manager exposes to the finp2p network a set of pledge plans that are supported by the collateral manager and allows assets and users' primary nodes to interact to execute pledge plans. A collateral manager responsibilities include:

  • Publishing collateral pledging opportunities (pledge plans) to the network.

  • Orchestration and distribution of pledge intents (via IOIs).

  • Following and monitoring the pledge plan conditions as well as external market conditions, and act in various predefined scenarios, such as a case of failure or fulfillment of those conditions (see "Release" and "Default").

Collateral Manager may have additional responsibilities and actions he might take while managing pledges from users, actions such as requesting a Pledgor to post more collateral or allowing a Pledgor to replace a pledge asset for another asset are capabilities that would be supported by the Collateral Manager but we will not address them in this phase.

Pledge Plan

A Pledge Plan defines the high-level conditions of a pledge opportunity, serves as a contract that contains the Pledge Pair information.

A Pledge Pair covers from one side a pledged asset, and on the other side:

  • A currency (typically a loan).

  • A different asset.

  • Nothing - which means the other side of the pledge is managed externally to FinP2P by the Collateral Manager.

A simple example of a pledger pair would be shares in a specific company pledged against a USD denominated digital currency loan.

The plan also allows the Pledgee and Pledgor to fill additional conditions (e.g. time limit, amount, fees, interest rates, payment schedule). The pledge plan is binding once signed by both parties using their FinP2P accounts and allows the Collateral Manager to exercise the plan.
Pledge plans will be introduced into the FInP2P network in the form of a new resource type (106) that will be created and managed by Collateral Managers across the network, the pledge plan servers as the base for the pledge agreement between two parties and allow addition or customization of some part of it by either party.

We recognize that pledging conditions and restrictions may vary and span over a different aspect of the pledge plan, different terms can be proposed by different Collateral Managers and other conditions and terms may be required to be applied by users participating in the pledge operation. to accommodate those variations we are planning to introduce a flexible and declarative way to express those conditions, this capability will be added to pledging services in the next phase.

The Pledge NFT

As part of the pledging process executed by the Collateral Manager, a unique asset token - an NFT (Non-Fungible Token), will be issued by the Collateral Manager to represent the pledging and the plan around it. the NFT will be issued to the Pledgee to represent their ownership of the pledge and their role as a beneficiary for any derived payments or other benefits as part of the pledge plan.

For example, if an asset is pledged in return for a loan, then the loan itself will have an NFT representing it, and the owner of that NFT will be entitled to all the assets and payments owed to the NFT (i.e. the return of the load with interest, or the pledged asset in case of default).

The NFT issued by the Collateral Manager shares the same semantics as any other Assets on the FinP2P network, hence the owner (i.e. Pledgee) of the NFT may offer to sell their NFT ownership to other users on the network by the existing means of secondary trading available on the FinP2P network or may use the NFT itself as collateral for other transactions - for rehypothecation. Obviously, all such transactions need to be approved by the issuer of the NFT (the Collateral Manager), which may decide to block any secondary trading or rehypothecation or enable them only to specific recipients etc.

Transfer of ownership of a given Pledge NFT also transfers the Pledgee role to the new NFT owner, alongside any other rights.

Flows

Pledge Intent

Utilizing the FinP2P intent creation and management mechanism, and in a similar manner, pledge intents are an instrument for users to create an IOI to participate in a pledge plan offered by the Collateral Manager, users can participate in the plan either as the Pledgor or as the Pledgee. the intents are owned and distributed by the Collateral Manager to the relevant nodes in the FinP2P network.

Pledgor Intent

Pledgor intent is created by an Asset holder who is willing to offer their holdings, or part of it, as collateral against another Asset, the Pledgee will be responsible to follow the pledging conditions as defined by the pledge plan and the intent.

 

Diagram depicts the interaction between the Collateral Manager and Pledgee for the creation of pledge intent for a loan, Pledgee will provide a signed instruction to the Escrow to execute payment transfer to the Pledgor account, the Collateral Manager will request to Hold the pledged asset from the asset’s primary node. given successful hold operation, the Collateral Manager will issue a unique NFT to the Pledgee to represent its ownership of the pledge.

Pledgee Intent

Users who wish to participate in a pledge plan by providing a counter Asset in exchange for collateralization of another Asset (and possible payment and interest payments), may create a Pledgor intent definition on a Collateral Manager providing the service to the asset pair.

Pledge Payment

Pledge condition may dictate payment schedule to which the Pledgor must adhere to prevent their pledge from defaulting, the Pledgor may utilize the Pay endpoint on the Pledging Service API to execute payment towards current pledgee of the pledge.

 

Defaulting of a Pledge

Collateral Manager might deem the pledge as defaulted in case of failure by the Pledgor to comply with the pledge intent conditions and terms, in this case, the Collateral Manager may release the pledged asset to the pledgee.

Release Pledge

The collateral manager is responsible for monitoring the pledge plan execution. Once the plan is settled, the Collateral Manager will release the pledged Asset back to the Pledgor and will invalidate the pledgee’s NFT.

FinP2P Network Interface Specification additions

Pledging Service

Introducing a new Service on top of the FinP2P network to provide pledging capabilities for various Assets to be posted as collateral on the FinP2P network, adopters of the new Service API will be required to support a set of new operations:

service PledgingService { rpc ExecutePledge(SignedExecutePledgeRequest) returns (SignedExecutePledgeResponse) { } // provides beneficiary, i.e. the owner of the pledge asset token, information. can be used to rpc GetBeneficiary(SignedGetBeneficiaryRequest) returns (SignedGetBeneficiaryResponse) { } // provides a signed payment instruction towards a beneficiary of a given pledge rpc Pay(SignedPayRequest) returns (SignedPayResponse) { } }


Pledge Execution - ExecutePledge

Given a Pledge intent was created by a Pledgee or Pledgor, the counterparty can request to execute the pledge intent, providing the pledge asset information and settlement as dictated by the pledge intent, signatures are required by both Pldgee and Pledgor to perform the pledge operation, for the first a signed instruction for payment is required, the later will need to provide signed instruction for hold operation on the pledged asset.

message SignedExecutePledgeRequest { ExecutePledgeRequest request = 1; common.Signature signature = 2; } message ExecutePledgeRequest { common.Envelop envelope = 1; ExecutePledgePayload payload = 2; } message ExecutePledgePayload { common.ResourceID intentId = 1; common.ResourceID pledgee = 2; common.ResourceID pledgor = 3; Pledge pledge = 4; PledgeSettlement settlement = 5; signature.Signature signature = 6; } message Term { accounts.Asset asset = 1; uint64 amount = 2; } message Instruction { accounts.Account sourceAccount = 1; accounts.Account destinationAccount = 2; } message Pledge { Term term = 1; Instruction instruction = 2; } message PledgeSettlement { Term term = 1; Instruction instruction = 2; } message SignedExecutePledgeResponse { common.Envelope envelope = 1; common.Status status = 2; ExecutePledgeResponsePayload payload = 3; } message ExecutePledgeResponsePayload { PledgeReference pledgeReference = 1; Receipt receipt = 2; } // unique reference to pledge executed, can be used to retrieve beneficiary information message PledgeReference { string reference = 1; }

Beneficiary information retrieval - GetBeneficiary

Beneficiary (i.e. Pledgee) might change in the lifetime of pledge, to locate a beneficiary, a pledgor may utilize the GetBeneficiary API to retrieve the current beneficiary information to execute payment dictated by the pledge plan.

message SignedGetBeneficiaryRequest { GetBeneficiaryRequest request = 1; common.Signature signature = 2; } message GetBeneficiaryRequest { common.Envelope envelope = 1; GetBeneficiaryRequestPayload payload = 2; } message GetBeneficiaryRequestPayload { PledgeReference reference = 1; } message SignedGetBeneficiaryResponse { GetBeneficiaryResponse response = 1; common.Signature signature = 2; } message GetBeneficiaryResponse { common.Envelope envelope = 1; GetBeneficiaryResponsePayload payload = 2; } message GetBeneficiaryResponsePayload { account.Account beneficiaryAccount = 1; }

Perform payment - Pay

Pledgors, if the intent condition mandate, will have to perform payments to satisfy the pledge condition and avoiding a default scenario for their pledge, to perform the payment the Pledgor can utilize the Pay endpoint, providing the reference to the pledge and a signed Escrow transfer to the pledge beneficiary

 

Demo use case - Loan

Using the new Pledging intent along side the Collateral Manager opens up various financial possibilities on the FinP2P network, key feature that can be achieved is a Loan participating offers that may be created by Users or Organizations and published to the broad FinP2P network, in this section we will depict what is the required operations required to perform to create a Loan offering and execution.

The loan scenario includes several entities:

  • Asset’s Primary Node

  • Pledgor (Borrower) and his FinP2P Node

  • Pledgee (Creditor) and her FinP2P Node

  • Collateral Manager

Flow break down

  1. Using the Intent Management API the Asset’s primary node publishes to the network information regarding its Asset, sharing the Asset with a Collateral Manager indicate that the Asset may be used as a collateral.

  2. Given Asset information by a Primary Node, the Collateral Manager may create a Pledge Plan resource and share the it with other nodes on the network.

  3. Pledgee creates an Intent to provide a loan for the Asset in exchange for another Asset for a specific interest rate, the intent creation is routed from the Pledgee Primary Node to the Collateral Manager.

  4. Collateral Manager may enforce some validation and checks intent created and the proposed Pledgee, if the Pledgee information and certification is not known to the Collateral Manager they may use the Get resource information API to fetch the information.

  5. Pledgor interested in the Loan offer may execute the intent, The Collateral Manager will start processing of the intent. in case of successful operation, the Pledgor will receive the agreed Asset amount while the Pledgee will receive an NFT which represent her ownership and role in the Loan.

  6. Loan may end in a Release, where the Loan is payed fully be the Pledgor, or Default when Pledgor fails to fulfill the Loan conditions.

    1. Release - the Pledgor executes a Pay API call to the Collateral Manager, including signed Payment instruction towards the Loan beneficiary, note that if the Loan NFT is transferable, the Pledgor will need to get the beneficiary payment information from the Collateral Manager prior to the payment.

    2. Default - in case the Collateral Manager deems the Loan as defaulted they may forfeiture the pledged Asset by releasing it to the NFT loan beneficiary