# 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)