Skip to content

Bonfida/token-vesting

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
cli
 
 
js
 
 
 
 
 
 
 
 
 
 
 
 

Token vesting




Table of contents


  1. Program ID
  2. Audit
  3. UI
  4. Overview
  5. Structure

Program ID


  • mainnet: CChTq6PthWU82YZkbveA3WDf7s97BWhBK4Vx9bmsT743
  • devnet: DLxB9dSQtA4WJ49hWFhxqiQkD9v6m67Yfk9voxpxrBs4

Audit


This code has been audited by Kudelski ✅


UI


The Bonfida Token Vesting UI can be used to unlock tokens. The UI only works for vesting accounts using the mainnet deployment CChTq6PthWU82YZkbveA3WDf7s97BWhBK4Vx9bmsT743


Overview


  • Simple vesting contract (SVC) that allows you to deposit X SPL tokens that are unlocked to a specified public key at a certain block height/ slot.
  • Unlocking works by pushing a permissionless crank on the contract that moves the tokens to the pre-specified address
  • Token Address should be derived from https://spl.solana.com/associated-token-account
  • 'Vesting Schedule contract' - A contract containing an array of the SVC's that can be used to develop arbitrary- vesting schedules.
  • Tooling to easily setup vesting schedule contracts
  • Recipient address should be modifiable by the owner of the current recipient key
  • Implementation should be a rust spl compatible program, plus client side javascript bindings that include a CLI- interface. Rust program should be unit tested and fuzzed.

Structure


  • cli : CLI tool to interact with on-chain token vesting contract
  • js : JavaScript binding to interact with on-chain token vesting contract
  • program : The BPF compatible token vesting on-chain program/smart contract

diagram