---
# System prepended metadata

title: workstreams dev

---

# workstreams dev

- https://www.figma.com/file/Jghc3xcWOHkC52qEaRQqrq/Work-Streams?node-id=147%3A519
- 

## user stories

- [x] Create workstream 
- [x] Fund workstream
- [ ] Set splits for workstream's drip
- [ ] withdraw funds as a split
- [ ] withdraw funds as a withdraw
- [ ] admin workstreams:
    - [ ] pause/play
    - [ ] 




## Diagrams

[![lucid-diagram](https://lucid.app/publicSegments/view/b2ff231a-bc76-4227-ac46-684bb2e6090a/image.png))](https://lucid.app/lucidchart/ef7bac30-cff8-4263-868c-bef3184bd9d3/view)


## Drips 


### Reasons to fork it
- Support multiple ERC20 over a single hub.
    - Right now we create a new ERC20 hub for every new ERC20 token we want to support. This can be invoked by anyone and the owner/admin of the deployment is the `workstreams` smart contract.
- Pass an account owner other than `msg.sender` when setting drips. 
    - Right now all drips are owned by `Workstreams` contract, with every drip being a different account
- Minor gas optimizations using `solmate` instead of `OpenZeppelin`.


## Open Questions
- cli workflow uses ssh signing. web ui workflow uses ethereum signing. How do we arrive at the same state?
- If we drip to teams, then splits are not 