# Folia Contracts
## NFT
### Prior Art
* [New Model Patches](https://github.com/bin-studio/new-models-contracts/blob/master/contracts/Patches.sol) (`solc v0.4.18`)
* [NFT + Metadata Tutorial](https://github.com/okwme/block-workshop) (`solc v0.5.0`)
* [Clovers Network](https://github.com/clovers-network/clovers-contracts/blob/master/contracts/v4/Clovers.sol) (`solc v0.4.18`)
### Attributes
* External Metadata contract for updateable URLs
* External Controller contract with the following permissions
* `mint()`
* `burn()`
* Admin account address with the following permissions
* `updateControllerAddress()`
* `updateMetadataAddress()`
* `updateAdminAddress()`
* should come with a timeout period and event notification to prevent theft
## Controller
### Prior Art
* [New Model Controller](https://github.com/bin-studio/new-models-contracts/blob/master/contracts/Patches.sol) (`solc v0.4.18`)
* [Clovers Network Controller](https://github.com/clovers-network/clovers-contracts/blob/master/contracts/v5/CloversController.sol) (`solc v0.5.9`)
### Attributes
* AdminBank address
* to receive sales
* Artworks
* array of structs
* Can register a new artwork
* New ID
* How many editions?
* Price?
* Artist's address?
* could be admin's and they send it to them manually if artist doesn't want to deal with a wallet...
* Can sell an artwork
* Sale is split between artist and adminBank
* Mints token
* Marks as minted