Treasury & Departments
A company's treasury sits at the root of the Mezzanine protocol. It is, itself, a multi-signature wallet. The signers of the Treasury contract are the Board of Directors of the organization.
The Treasury contract is responsible for holding the vast majority of a company's assets at any given point in time. Similar to how access control in Mezzanine is hierarchical, the spending and allowances of assets are also hierarchal. An allowance is the amount that another address can spend of an ERC20 on behalf of another address. For example, if Alice gives Bob an allowance of 100 USDC, Bob can spend up to 100 of Alice's USDC on her behalf.
Treasuries and departments in Mezzanine are multi-signature wallets. Specifically, they are Safe (formerly Gnosis Safe) wallets. These types of wallets require cryptographic signatures from a set of signers to execute a transaction. The number of required signatures to execute a transaction is called the threshold and can be different than the total number of signers.
Company Creation
When making a Mezzanine company, five variables must be decided:
A company name: all company names are unique
The company's symbol: the company's symbol functions the same as a ticker for publicly traded equities. All company symbols are unique
The company's denomination asset: the asset that is used to pay employees, determine if the company is at risk of bankruptcy, and distributed during a company's liquidation
An initial number of authorized common shares
The company's board of directors: who and how many people are set as directors
A threshold: the number of directors needed to make a governance decision
Below is an example of the most simple Mezzanine company:
Mezzanine's smart contracts can be used by anyone and are not limited to a single interface. Any group of individuals may choose to use our SDK to build an interface upon the Mezzanine protocol. For example, a team building a decentralized exchange using Mezzanine may want to enable shareholder governance within their interface. They can seamlessly accomplish this via our SDK.
Last updated