Skip to content

U1tra-Labs/dashstar

Repository files navigation

Token Lending program

A lending protocol for the Token program on the Solana blockchain inspired by Aave and Compound.

Full documentation is available at https://spl.solana.com/token-lending

Web3 bindings are available in the ./js directory.

On-chain programs

Please note that only the lending program deployed to devnet is currently operational.

Cluster Program Address
Mainnet Beta LendZqTs8gn5CTSJU1jWKhKuVpjJGom45nnwPb2AMTi
Testnet 6TvznH3B2e3p2mbhufNBpgSrLx6UkgvxtVQvopEZ2kuH
Devnet 6TvznH3B2e3p2mbhufNBpgSrLx6UkgvxtVQvopEZ2kuH

Documentation

Deploy a lending program (optional)

This is optional! You can skip these steps and use the Token Lending CLI with one of the on-chain programs listed above to create a lending market and add reserves to it.

  1. Install the Solana CLI

  2. Install the Token and Token Lending CLIs:

    cargo install spl-token-cli
    cargo install spl-token-lending-cli
  3. Clone the SPL repo:

    git clone https://github.com/solana-labs/solana-program-library.git
  4. Go to the new directory:

    cd solana-program-library
  5. Generate a keypair for yourself:

    solana-keygen new -o owner.json
    
    # Wrote new keypair to owner.json
    # ================================================================================
    # pubkey: JAgN4SZLNeCo9KTnr8EWt4FzEV1UDgHkcZwkVtWtfp6P
    # ================================================================================
    # Save this seed phrase and your BIP39 passphrase to recover your new keypair:
    # your seed words here never share them not even with your mom
    # ================================================================================

    This pubkey will be the owner of the lending market that can add reserves to it.

  6. Generate a keypair for the program:

    solana-keygen new -o lending.json
    
    # Wrote new keypair to lending.json
    # ============================================================================
    # pubkey: 6TvznH3B2e3p2mbhufNBpgSrLx6UkgvxtVQvopEZ2kuH
    # ============================================================================
    # Save this seed phrase and your BIP39 passphrase to recover your new keypair:
    # your seed words here never share them not even with your mom
    # ============================================================================

    This pubkey will be your Program ID.

  7. Open ./token-lending/program/src/lib.rs in your editor. In the line

    solana_program::declare_id!("6TvznH3B2e3p2mbhufNBpgSrLx6UkgvxtVQvopEZ2kuH");

    replace the Program ID with yours.

  8. Build the program binaries:

    cargo build
    cargo build-bpf
  9. Prepare to deploy to devnet:

    solana config set --url https://api.devnet.solana.com
  10. Score yourself some sweet SOL:

    solana airdrop -k owner.json 2
    solana airdrop -k owner.json 2
    solana airdrop -k owner.json 2

    You'll use this for transaction fees, rent for your program accounts, and initial reserve liquidity. If you run into issues with the airdrop command, see the docs for more info.

  11. Deploy the program:

    solana program deploy \
      -k owner.json \
      --program-id lending.json \
      target/deploy/spl_token_lending.so
    
    # Program Id: 6TvznH3B2e3p2mbhufNBpgSrLx6UkgvxtVQvopEZ2kuH

    If the deployment doesn't succeed, follow this guide to resume it.

  12. Wrap some of your SOL as an SPL Token:

    spl-token wrap \
       --fee-payer owner.json \
       2.0 \
       -- owner.json
    
    # Wrapping 2 SOL into AJ2sgpgj6ZeQazPPiDyTYqN9vbj58QMaZQykB9Sr6XY

    You'll use this for initial reserve liquidity. Note the SPL Token account pubkey (e.g. AJ2sgpgj6ZeQazPPiDyTYqN9vbj58QMaZQykB9Sr6XY).

  13. Use the Token Lending CLI to create a lending market and add reserves to it.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published