# Yeeter Architecture **Goal** - Flexible protocol enabling various usecase and UI implementations - Use current factories when we can. - Use new HOS ### Contracts **1. Creating a DAO and Yeeter** ![](https://hackmd.io/_uploads/ByXCWfbT3.png) Questions: - support bringing loot token? - support capped loot token singleton for silo style? - look into hats factory in the future - another HOS? --- **2. Creating a Yeeter for existing DAO** See column 3 above. **Questions** - create setShaman proposal in this factory? - separate eth/erc20 singletons? - can we do a similar poster call as is done in the dao factory? #### Build - Erc20 yeeter singleton - erc20 onboarder with start time + max allocation - Eth yeeter singleton - eth onboarder w start time + max allocation - Yeeter factory - adds (optional) poster call action - DAO + Yeeter HOS #### HOS psuedo code **non custom tokens** can we use HOS base? https://github.com/HausDAO/baal-tokens/blob/main/contracts/hos/HOSBase.sol#L66C37-L66C37 ultimately call: ``` summonBaalFromReferrer( address _safeAddr, address _forwarderAddr, uint256 _saltNonce, bytes calldata initializationMintParams, bytes calldata initializationTokenParams, bytes[] calldata postInitializationActions ) ``` _safeAddr: 0x0 _forwarderAddr: 0x0 _saltNonce: might need to do in contract for predicting baal address initializationMintParams: - encodeMintParams in contract utils - membershares and addresses/loot and addresses initializationTokenParams: - encodeTokenParams in contract utils - token names and symbols and transferability postInitializationActions - governanceConfigTX - voting, grace, quorum, offering, minrention, threshold, - shamanConfigTX - need to assemble this in contract - shaman we summoned earlier - manager perms (2) - metadataConfigTX - post with profile json, tag and dao name --- ### Data caching - Yeeter subgraph - other options outside subgraph? - index yeeters by dao from - index setShamans from dao - index poster from factory - and edits by dao members Questions - if supporting content editing by hats wearers, how can we verify hats wearer in this subgraph? #### Build 1. Poster schemas 2. Subgraph mappings ### UI - React app - DH Libraries **Pages and elements** - Funnel - Home page/content - Browse - Explore/search - yeeter card - simple search - simple filter - Featured - Upcoming - Onboarder - Hard mode or easy mode? - hide as much as we can - Initiaily support new DAO + yeeter - Yeet - Dashboard data display - pre-yeet, in-yeet, post-yeet states - Edit meta - Yeet tx ### Infra - Monorepo or UI and subgraph? - Vercel or ipfs deployment? - Networks? - GH Org? ### Spec Detail **Factory args** - baal facory - dao/project name - token names/symbols - share/loot holders and amounts - governance (prop timing, offering, quorum, min retention) - can we predict the shaman address to set shaman? - eth yeeter factory - baal - end time - start time - shares or loot - shares per eth sent (multiplier) - max allocation of shares/loot - minimum tribute - cuts (platform fee) - amounts (platform fee) - poster content - erc20 yeeter factory - baal - shares/loot - end time - start time - price per unit - shares/loot per unit - max allocation of shares/loot - poster content ### Resources [eth onboarder shaman](https://github.com/HausDAO/baal-shamans/blob/main/contracts/onboarder/EthOnboarder.sol) [erc20 onboarder shaman](https://github.com/HausDAO/baal-shamans/blob/main/contracts/onboarder/Onboarder.sol)