This program allows you to lock arbitrary SPL tokens and release the locked tokens with a determined unlock schedule. An
unlock scheduleis made of a
unix timestampand a token
amount, when initializing a vesting contract, the creator can pass an array of
unlock schedulewith an arbitrary size giving the creator of the contract complete control of how the tokens unlock over time.
Unlocking works by pushing a permissionless crank on the contract that moves the tokens to the pre-specified address. The recipient address of a vesting contract can be modified by the owner of the current recipient key, meaning that vesting contract locked tokens can be traded.