# 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