Solana programs developed at Paxos
minter_controller
is used to add transaction controls to Solana mint authorities for the token and token-2022 program.
The transaction controls include rate limitings and whitelisting. The program requires the token mint authority
to be a spl token multisig.
Audits were performed by both Zellic and Trail of Bits. Audit reports can be found here.
The program is first used by calling the add_minter
instruction which creates a PDA that can be used to mint tokens.
The PDA is derived from the minter_authority
and mint_account
.
The minter PDA should be added as a signer on the spl token multisig.
An admin
Pubkey is also specified to update the transaction controls.
Whitelisted addresses which can be minted to can be added via add_whitelisted_address
. Whitelisted addresses can be
removed via remove_whitelisted_address
. These instructions can only be called by the admin
.
The initial rate limit is specified when calling add_minter
. It can also be updated via update_rate_limit
.
These instructions can only be called by the admin
.
Updating the admin is a two step process. Step 1 is to call start_admin_transfer
with the current admin
.
Step 2 is for the new admin to call accept_admin_transfer
.
Minting tokens is done by calling mint_tokens
. This instruction must be signed with the minter_authority
.
anchor build
npm install
anchor test
Run anchor keys list
. Ensure the public key output matches the declare_id!
value in lib.rs
anchor deploy