Skip to content

Loan and Decentralized Tokenization

Jouzo edited this page Oct 12, 2021 · 20 revisions

Warning: Loans are in testing phase and is an experimental feature.

Interacting with Defichain loans requires multiple steps. Please refer to the pinkpaper to understand the different concepts such as :

  • Collateral requirements
  • Liquidation
  • Auctions

This tutorial will teach you how to create a vault, take and payback a loan, and bid on an auction through the command line interface.

Create a vault

Prerequisites

  • Any DFI address
  • 2 DFI for vault creation

Create a vault for address tajkVepLNNZYhKkdCt9TqRijYiZC96c8Gf and loan scheme LOAN1205

./defi-cli createvault tajkVepLNNZYhKkdCt9TqRijYiZC96c8Gf LOAN1205

e06e8bcaeec0e44bebc05fe59758036565d71d916fd6918d875a708c1c44ed39

Prepare collaterals

./defi-cli listcollateraltokens
{
  "98148706b65fae152f1fd2f57592d81a7b662a59c978b84566ccbd225018b98b": {
    "token": "DFI",
    "factor": 1.00000000,
    "fixedIntervalPriceId": "DFI/USD",
    "activateAfterBlock": 2483
  },
  "caa3a92d4a79343d224fcb7e25a89f080f6472abd5d14ed324d05244cf61f49c": {
    "token": "BTC",
    "factor": 1.00000000,
    "fixedIntervalPriceId": "BTC/USD",
    "activateAfterBlock": 2484
  }
}

Send collaterals to address

./defi-cli utxostoaccount '{"2NFWdyu2eHnTrSaJFP9gPBJabm8yg4z4JMF":"100@DFI"}'

aeb57cf1da38545df287fb70d9c3d0ab28f7ea341635db8ceec91215e9240689

Deposit to vault

Prerequisites

  • Any DFI address controlling collaterals
./defi-cli deposittovault c80733ea435de119d43c3c76bddfbd6963bed276daf224dcae5e8e1b31584527 2NFWdyu2eHnTrSaJFP9gPBJabm8yg4z4JMF 100@DFI

116cbd9aaadf9094d438429b0717c9dead894981d8787f382cc24d1378c3ea1c

List loan tokens

List all available tokens to take a loan from.

./defi-cli listloantokens 
{
  "b9dab34c836f034579528be659b28561fbf1bc824c4890d957daa84c044c8975": {
    "token": {
      "2": {
        "symbol": "TSLA",
        "symbolKey": "TSLA",
        "name": "TSLA token",
        "decimal": 8,
        "limit": 0,
        "mintable": true,
        "tradeable": true,
        "isDAT": true,
        "isLPS": false,
        "finalized": false,
        "isLoanToken": true,
        "minted": 1.00000000,
        "creationTx": "b9dab34c836f034579528be659b28561fbf1bc824c4890d957daa84c044c8975",
        "creationHeight": 2492,
        "destructionTx": "0000000000000000000000000000000000000000000000000000000000000000",
        "destructionHeight": -1,
        "collateralAddress": "bcrt1qyrfrpadwgw7p5eh3e9h3jmu4kwlz4prx73cqny"
      }
    },
    "fixedIntervalPriceId": "TSLA/USD",
    "interest": 1.00000000
  },
  "6829a0298ecb6da3bbe9336cab16082b5f59e7d5a54b972152d7b83d5bf2d1ed": {
    "token": {
      "3": {
        "symbol": "GOOGL",
        "symbolKey": "GOOGL",
        "name": "GOOGL token",
        "decimal": 8,
        "limit": 0,
        "mintable": true,
        "tradeable": true,
        "isDAT": true,
        "isLPS": false,
        "finalized": false,
        "isLoanToken": true,
        "minted": 0.00000000,
        "creationTx": "6829a0298ecb6da3bbe9336cab16082b5f59e7d5a54b972152d7b83d5bf2d1ed",
        "creationHeight": 2492,
        "destructionTx": "0000000000000000000000000000000000000000000000000000000000000000",
        "destructionHeight": -1,
        "collateralAddress": "bcrt1qyrfrpadwgw7p5eh3e9h3jmu4kwlz4prx73cqny"
      }
    },
    "fixedIntervalPriceId": "GOOGL/USD",
    "interest": 1.00000000
  }
}

Take a loan

Prerequisites

defi-cli takeloan '{"vaultId":"c80733ea435de119d43c3c76bddfbd6963bed276daf224dcae5e8e1b31584527", "amounts":"10@TSLA"}'

9cd43a076acfd22a9f0c5eaf0f2f53851606263cb0fdd9709d34a14462c59aad

Vault utility functions

Get a vault

./defi-cli getvault 7be4e7d41535874925c78fd3bee09247b7c8c0195048bfddd137dda4739e267d
{
  "vaultId": "7be4e7d41535874925c78fd3bee09247b7c8c0195048bfddd137dda4739e267d",
  "loanSchemeId": "1205",
  "ownerAddress": "2MyHGN8foDrjA4tEL3Xmu33LGdBx1KwqH6a",
  "isUnderLiquidation": false,
  "collateralAmounts": [
  ],
  "loanAmount": [
  ],
  "collateralValue": 0.00000000,
  "loanValue": 0.00000000,
  "currentRatio": -1
}

Update a vault

Update a vault to address 2MyHGN8foDrjA4tEL3Xmu33LGdBx1KwqH6a and loan scheme LOAN1305

./defi-cli updatevault 1268e5693e20e0cad7b1b6cf0b9cc30b94fdf78777a8d1f2378885dc1c58abc7 '{"ownerAddress":"2MyHGN8foDrjA4tEL3Xmu33LGdBx1KwqH6a", "loanSchemeId":"LOAN1305"}'

3902fc1523f5874938dabb09cf4009f487510ee455b1f9b12a63bf6ffbe08600

List vaults

Use listvaults to get all vaults owned by address 2MyHGN8foDrjA4tEL3Xmu33LGdBx1KwqH6a

./defi-cli listvaults '{"ownerAddress":"2MyHGN8foDrjA4tEL3Xmu33LGdBx1KwqH6a"}'

[
  {
    "vaultId": "1268e5693e20e0cad7b1b6cf0b9cc30b94fdf78777a8d1f2378885dc1c58abc7",
    "ownerAddress": "2MyHGN8foDrjA4tEL3Xmu33LGdBx1KwqH6a",
    "loanSchemeId": "LOAN1305",
    "isUnderLiquidation": false
  }
]

Close vault

Prerequisites

  • Any DFI address to receive collaterals (if any) and half of creation fee back (other half is burnt).

Close vault 1268e5693e20e0cad7b1b6cf0b9cc30b94fdf78777a8d1f2378885dc1c58abc7 and send back collaterals and half of creation fee to address 2MyHGN8foDrjA4tEL3Xmu33LGdBx1KwqH6a

./defi-cli closevault 1268e5693e20e0cad7b1b6cf0b9cc30b94fdf78777a8d1f2378885dc1c58abc7 2MyHGN8foDrjA4tEL3Xmu33LGdBx1KwqH6a

bc2576438b04ed077cf2fd6ab27e87c4a61947300c08b5504a5a6636935c5473

Clone this wiki locally