Designed and Written by Justin Bebisand Zokunei, with help from Goober, and the rest of the Byte Masons crew
Reliquary is a smart contract system that is designed to improve outcomes of incentive distribution by giving users and developers fine grained control over their investments and rewards. It accomplishes this with the following features:
- Emits tokens based on the maturity of a user's investment, separated in tranches.
- Binds variable emission rates to a base emission curve designed by the developer for predictable emissions.
- Supports deposits and withdrawals along with these variable rates, which has historically been impossible.
- Issues a 'financial NFT' to users which represents their underlying positions, able to be traded and leveraged without removing the underlying liquidity.
- Can emit multiple types of rewards for each investment, as well as handle complex reward mechanisms based on deposit and withdrawal.
By binding tokens to a base emission rate, you not only gain the advantage of a predictable emission curve, but you're able to get extremely creative with the Curve contracts you write. Whether this be a sigmoid curve, a square root curve, or a random curve, you can codify the user behaviors you'd like to promote.
Please reach out to [email protected] to report bugs or other funky behavior. We will proceed with various stages of production testing in the coming weeks.
This is a Hardhat
project which requires a specific node version. We have provided an .nvmrc
file which shows the current required version of node. You can install manually or via nvm by using the command.
nvm use
All dependencies are managed by npm
, you can install the project using the command
npm install
We have hardhat
test coverage in the file test/ReliquaryTest.ts
, you will need to ensure the contracts have been compiled before running so please use the commands:
npm run build
npm run test
We also have an End to End
test script that tests the MasterChef works as intended.
npx hardhat run scripts/ChefTester.js