The KSDistributor, is a smart contract allowing the distribution of multiple ERC20 tokens through multiple campaigns, each with its own distribution schedule and Merkle tree. The design is heavily inspired by the Universal Rewards Distributor by Morpho Protocol. Compared to the URD, the KSD has the following differences:
- Supports multiple campaigns, each with its own Merkle tree and distribution schedule.
- Supports distributing rewards to NFTs' holders, not just to addresses.
- Supports claiming rewards on behalf of another address.
- Supports batch claiming of rewards.
$ forge build$ forge test$ forge fmt$ forge snapshot$ forge create src/KSDistributor.sol:KSDistributor --rpc-url <your_rpc_url> --private-key <your_private_key>$ yarn ts-node script/generate-merkle-tree.ts