TORC-2022 STANDARD

TORO IMPROVEMENT PROPOSAL (TIP) 1

Status: Proposed
Type: Standard
Category: TIP
Date Proposed: 2922-05-23

Simple Summary

A standard for specifying human aspirations through financial loan, line of credit (LOC), mortgage, or buy now pay later (BNPL) contracts. This contract structure brings together the demand/supply/financial/provenance aspects of commercial interactions in the real world together.

Abstract

The TORC-2022 defines a universal standard for describing a financial loan, line of credit (LOC), mortgage, or buy now pay later (BNPL) contract. This is to provide a standard contract able to interpret and serve the decentralized financial aspirations of users, and allow consistent interpretation of such contracts. Utilizing this standard allows certain benefits for such contracts including interoperability, as well as ability for easily presenting such aspirational financial instruments to be easily incorporated into client applications.

Motivation

Describing financial aspirational contracts in form of a standard allows them to be consistently and easily represented by applications without requiring much financial effort as would exist without a standard.

Specification

The ToRC-2021 is intended to be implemented as a smart contract. The specification is defined below based on the methods that are expected to be universally available to interact with the contract.

Note

Properties

The specification has the following properties:

Methods

The specification has the following methods:

type

Returns the financing type of the contract. OPTIONAL  this method can be used to improve usability, but interfaces and other contracts must not expect this value to be present. If no value is returned, a type 0 should probably be assumed, given a most general specification (noting that the security is an optional property in the specification.)

principal

Returns the principal financed by the contract.

durationtype

Returns the duration type used to represent duration as specified by the agreement.

duration

Returns the duration of the contract.

interest

Returns the interest rate of the contract.

frequency

Returns the payment frequency for the financing agreement in durationtype.

downpayment

Returns the downpayment amount required to activate the contract.

OPTIONAL: this method can be used to improve usability, but interfaces and other contracts must not expect this value to be present.

amounts

Returns the payment amounts on the specified duration.

balance

Returns the balance of the financing that’s outstanding.

activationdate

Returns the date the contract becameactive.

OPTIONAL: this method can be used to improve usability, but interfaces and other contracts must not expect this value to be present.

startdate

Returns the start date of the contract.

OPTIONAL:  this method can be used to improve usability, but interfaces and other contracts must not expect this value to be present.

enddate

Returns the end date of the contract.

OPTIONAL: this method can be used to improve usability, but interfaces and other contracts must not expect this value to be present.

security

Returns the address of an non-fungible token securing the contract.

OPTIONAL: this method can be used to improve usability, but interfaces and other contracts must not expect this value to be present.

security

Returns the address of an non-fungible token securing the contract.

OPTIONAL: this method can be used to improve usability, but interfaces and other contracts must not expect this value to be present.

securitydescription

Returns a description of the security.

OPTIONAL:  this method can be used to improve usability, but interfaces and other contracts must not expect this value to be present.

loaner

Returns the address of the loaner.

borrower

Returns the address of the borrower.

token

Returns the address of an ERC-20 token which the contract is denominated in. If not specified, it is assumed to be the native blockchain token.

OPTIONAL: this method can be used to improve usability, but interfaces and other contracts must not expect this value to be present.

status

Returns the status of the contract.

OPTIONAL: this method can be used to improve usability, but interfaces and other contracts must not expect this value to be present.

pay

Implements a method that receives payments, updates the loan balance, and transfer the amount to the loaner’s address.

OPTIONAL: this method can be used to improve usability, but interfaces and other contracts must not expect this value to be present. If this method is not implemented, any transfers or payments made to the contract by the borrower’s address is processed like a payment, as described above.

Blockchain Provided Methods

initiationdate

The date the contract was created can be extracted normally from the blockchain..

paymenthistory

Using the address of the contract, ordinarily the list of all payments to he contract can likely be retrieved normally from the blockchain.

disbursement

Payment ordinarily made into the contract accrues to the contract’s balances. Any amount in the contract can be withdrawn by the borrower. In essence, the borrower is the owner of the contract’s balance.

Copyright

Copyright and related rights waived.

Citation

Please cite this document as:

Ken Alabi, Bolaji Akinboro, “TIP-1: Token Standard,” Toronet Improvement Proposals, no. 1, July 2022.