Skip to main content

Approval mods

Approval mods are mods that allow protocol coins whose puzzles are using these mods, referred to as approval coins, to approve certain actions within the protocol.

There are five approval mods:

  • collateral_vault.clsp
  • surplus_auction.clsp
  • recharge_auction.clsp
  • savings_vault.clsp
  • announcer_registry.clsp

There are six actions that approval coins can approve between them. Approval coins are the only coins that are allowed to:

  • issue or melt BYC
  • issue or melt CRT
  • deposit to or withdraw from Treasury

The table below shows which approval mod has which rights.

indexapproval modBYC tailCRT tailTreasury
1Collateral Vaultissue and melt❌deposit (repay or transfer Stability Fees) or withdraw (bad debt recovery)
2Surplus Auction❌meltwithdraw (to Payout coin)
3Recharge Auction❌issuedeposit (from winning bid)
4Savings Vault❌❌withdraw (pay interest)
5Announcer Registry❌issue❌

The Treasury mod, treasury.clsp, does not impose any restrictions on the size of deposits or withdrawals approved by approval coins. Similarly for BYC and CRT tails. It is the approval mods themselves that limit how they can interact with BYC tail, CRT tail, and Treasury coins.

The treehash of the list of the five approval mod hashes in the order shown above is curried into the fixed arg APPROVAL_MOD_HASHES_HASH of the Statutes singleton.