# SiloHAUS RDF - MVP Scope Develop and deploy the base functionality to support RDF campaigns and basic DAO UI interaction. Target Deployment: **10.1.2023** Budget: **13 eth** - Contract dev - Dekan + Stargarden + Santiago - UI Dev - Sam + Dekan ## Scope Development of a subset of key features outlined here: [RDF UI DESIGNS](https://www.figma.com/file/Bsy8YZDLvjowKBUOHf7yuP/Moloch-RDF?type=design&node-id=0%3A1&mode=design&t=AuHY55gTBaro249g-1) ### RDF DAO summoner Form to launch and new RDF DAO + Claim shaman for existing NFT collection - [Design + UI Spec](https://www.figma.com/file/Bsy8YZDLvjowKBUOHf7yuP/Moloch-RDF?type=design&node-id=3-3&mode=design&t=Q7EO3DLO6mm0ekGP-0) - Capped loot token w/ supply held in sidecar safe **Development effort** Contract dev - Custom Loot contract to cap supply - Claim shaman contract - Higher order summoner contract UI Dev - New summon app - New field types for nft collection validation - Custom arg transformation ### Claim UI Page to view nft collection and claim share/loot - [Design & Spec](https://www.figma.com/file/Bsy8YZDLvjowKBUOHf7yuP/Moloch-RDF?type=design&node-id=3-3&mode=design&t=Q7EO3DLO6mm0ekGP-0) - Single claim interaction with claim shaman - TBA created on TBA site, our UI will just need tba address **Development effort** UI Dev - Get data from airstack and or/ 6551 sdk - NFT cards and list - Custom transactions - Check if nft is claimed with rpc call - reduces scope of creating a subgraph ### DAO UI New DAO UI with TBA related functionality. - [Design & Spec](https://www.figma.com/file/Bsy8YZDLvjowKBUOHf7yuP/Moloch-RDF?type=design&node-id=3-3&mode=design&t=Q7EO3DLO6mm0ekGP-0) - Simplified Profile page with NFT holding list - Proposal type removal - Member list will be the same as current DAOhaus ui for mvp - Hand off to 6551 app for tba deployment + WC connection - Need a way to encourage this flow with a page of directions + disconnect + WC button + link to 6551 site - Test all txs with 6551 connected - Home page/Hub of this app will be a simplified version of the hub scoped to 6551 daos ## Assumptions - TBAs will be deployed from 6551 app - DAO UI transaction/interaction from the TBA will require 6551 WC connection - RDF will support standard erc721 contracts with totalSupply implemented - Or rquire the summoner to input the total supply or loot token per nft ratio - Deployed to Mainnet, Goerli and Optimism - Share token transferability and rage quit will be disabled in the UI - not the contract - MVP will not include Holder list scoped to EOAs holding NFTs - we will start to explor complex new fetching for this - all tba members - get nft for each - get owner for each - reorganize this ## Roadmap for next scope - Loot Yeeter campaign proposal, launch and yeet ui - Holder list - Batch claim/Batch Delegate - More delegation support - Connect an NFT champion #### contract notes **summoner** - deploy loot and shares token from custom implimentation - deploy pre initialization shaman (loot claims and share mint) - deploy baal with side car valut (BaalAndVaultSummoner) - initialize shaman with baal address - mint total supply of loot tokens to side car vault and claims Shaman - transfer ownership of tokens to baal **custom loot** - fixed supply - non upgradable - ownable / snapshot - function to do initial batch mint - cannot be paused or upgraded **sidecar vault** - Safe **claim shaman** - gated to owners of NFT - tracks claim status of tokenIds - mints 1 share (shaman) to NFTs 6551 tba (undeployed) - transfers n loot to NFTs 6551 tba (undeployed) - works utill insolvent? until claim period over, until escape hatch envoked? - some kind of expiery and escape hatch for unclaimed tokens - can claim for any NFT (permissionlessly) **sudo code** contract - initilizable - not upgradable - ownable by dao for admin? function setup - initializer - params moloch, vault, init params - init params: nft contract, tba imp contract, tba registry, loot amount for claim - require deposit? function claim - require nft has not already been claimed - does not verify ownership (anyone can claim for others) - call calculate (amount of loot) - Get tba address (token contract, implimentation, id, chain) - shaman mint 1 share to tba - transfer loot to tba - mark as claimed - emit event function batchClaim? function admin - change reg/imp addrs? - end/pause claim? - change loot amount per claim? - extend claim - rescue funds