# SiloHAUS - RDF - Spec Session ## Questions - want to disable rage quit of the share token - maybe custom share token - restrict rage quit at the tba level - custom 6551 - custom crypto kittie custom claim contract - nothing custom - they can do that - Shares name = {DAO name}-vote - hide token transfer form - Summoner needs to query nft collection on summon - get total supply to set the proportion of claim - what about non-fixed supply? - we only support fixed supply - summoner needs to check and validate - totalSupply - conforms 721 standard validation ## Contracts **New loot contract + singleton** - FixedLoot - takes totalSupply on init - takes initialHolder on init - remove upgradability - turn off mint - turn off pause-ability - adjust beforeTokenTransfer to check new mint/pause rules **New HOS** - Makes the baal, safe, sidecar safe - adjust initparams and initactions - takes loot template now - initalSupply and initialHolder (if not safe the HOS creates) - identify fixedloot in referrer field - create and set the claim shaman in the baal init - determine shaman address - permission level 2 (manager I think) - sends loot tokens to claim shaman and some to side vault **Claim shaman contract** - inits with - nft contract address - ratio of tokens to shares - create tba (at least get address) - Claim function - batch option - checks balanceOf on some nft contract to make a whitelist - keeps track of tokenIds that have claimed (or have share) - mints 1 share - transfers some amount of loot - * Q: from side vault? - * Q: does all loot go into shaman? some amount for distro? - * Q: shaman may need approval from token contract for transferFrom on Safe - * Q: another option is roles/permissions **DAO initial config** - 0 shares, 0 loot - 33% min retention - voting period: 3days, grace 2 day - quorum: 0 - sponsor threshold: 1 - offering: 0 - shares non transferable, loot transferable **Other Considerations** - ADMIN UI: daos with this token can't use mintloot proposals - SUBGRAPH: no summoners provided in SILO - should be fine on the subgraph? ## Data delivery - HOS will flow down to normal summoners - main summoner - sidecar vault - identify nft dao by referrer? - General nft holdings per address? - TBA per nft token? - Claim shaman - claim status could be indexed maybe ## UI **General** - New custom apps - Launcher is stand-alone - Multi-tenent - create multi-tenent starter - just swap target_dao for useCurrentDaoContext - needs a home page not scoped to dao if so - simple search by name? **Summon** - Simple form w/ available fields - HOC transaction - Custom arg assembly functions for init params and actions - Hidden default values - could be a stepper form **Claim** - Connect wallet and find nfts per wallet - get nfts per address - get nft claim status from shaman - Claim function - takes a list of tokenIDs - Complexity around data fetching/mashing - New components - help nft list - nft card - claim - batch claim modal - Note: somme older NFTs do not follow the standard - future - view all nfts - maybe batch claim all? - don't create tbas **Profile** - Highly customized version of current profile - Overview data displays adjusted a bit - total nfts held index somewhere? - all meme tokens held by all tbas for the nfts held by the connected account - held nft list - claimed tbs that the connected address holds the nft for - nft card - profile state with delegate - delegate single nft - routes tx through the tba - function on tba that takes an encoded delgate call function - delegate many - maybe a front end multicall library to batch the single delegates (wont work for multiple contracts) - maybe a middleware contract that allows delegate call to many (needs custom 6551 implimentation) - to do multi call on multiple contract probably requires calling from a contract and not an EOA. THis could be acomplished if 1 nft/tba owned all other nft/tbas and used a multi call library like the Safe one (still have to send all nfts to tba) - make pfp - changes profile image somehow - use localStorage - use poster - but requires adding a lot for profile management - Manage view - new table - connect as nft flow?? - more exploration - in scope initially? - lots of unknowns - seems like it could identify the tba that will be voting/delegating/submitting proposals/rage quit - how will that state run through the rest of the app for other functionality scoped to the connected wallet - can we prioritize the delegation flow for viting/proposing ect... - profile page doesn't make sense if connected as a tba through tokenbound account - lots more unknowns **Holders/Members** - Doesn't pull data from member list, but from nft holders list somewhere - Current member list components w/ some small changes **DAO Info** - Small component changes **DAO Settings** - DAO metadata needs to be updated by a tba - what address comes through here and does our poster indexer pick that up? - probably need to adjust how we index this - but we would then need to store **Proposals** - Lists/details and new prop forms - New proposals **Safes** **Yeeter proposal** - future - how to get the shaman address and have it for the setShaman - better to integrate with yeeter ## Resources [RDF PROTOTYPE](https://www.figma.com/proto/Bsy8YZDLvjowKBUOHf7yuP/Moloch-RDF?type=design&node-id=29-2195&t=AuHY55gTBaro249g-0&scaling=scale-down-width&page-id=0%3A1&starting-point-node-id=29%3A2195) [RDF UI DESIGNS FIGMA (with notes)](https://www.figma.com/file/Bsy8YZDLvjowKBUOHf7yuP/Moloch-RDF?type=design&node-id=0%3A1&mode=design&t=AuHY55gTBaro249g-1) [airstack](https://app.airstack.xyz/) TokenBound SDK? ## Silo Core Uses TBA DAOhaus, but has a different onboarding flow - enables creataing new collections - nft sale to seed the dao