---
# System prepended metadata

title: Minion Safe integration

---

# Minion Safe integration 

## minionSafe module
https://github.com/HausDAO/MinionSummonerV2

## minionSafe front end integration (WIP)
https://github.com/santteegt/pokemol-web/tree/feature/minion-safe

## Notes

Deploy minion boost deployment form updates

update settings page to be accessible with vault page
- what setting page? should just be a vault page

update vaults page to look at safe balances
- will require indexing job updates to cache safe balance data instead of minion balance data

subgraph updates to record new safe and module addresses
- new safeAddress on the minion entity
- factory update on new summon event 
- update mappings current in neapolitan minion to handle new proposeaction
    - likely need new fields to store byte data and maybe unpack it in the subgraph
- check execute action mapping too

minion form updates
- needs to use form legos and encode

proposal details
- rework how action data is displayed
- decode helpers


# NEXT STEPS

- Add safe adddress to subgraph entity
- Deploy subgraphs - sam
- Update index jobs - sam


### MINION LAUNCH 
front end code notes

Will need new minion data added to:

chains.js
- factory contract address

Minion lego data:
https://github.com/HausDAO/daohaus-app/blob/feature/legoland/src/data/minions.js
- minion network, setting links,  type and content data


a new minion form lego
nifty minion example:
https://github.com/HausDAO/daohaus-app/blob/feature/legoland/src/data/forms.js#L478
- you'll likely need some extra fields - maybe custom fields. checkout how minQurom is done.
- i don't know what else is needed for the safe flow


FYI - here is where the new minion form is loaded:
https://github.com/HausDAO/daohaus-app/blob/feature/legoland/src/pages/Installed.jsx
- Summon Minion button
- opens a form modal with the 1st step as CORE_FORMS.SUMMON_MINION_SELECTOR:
https://github.com/HausDAO/daohaus-app/blob/feature/legoland/src/data/forms.js#L103
- 2nd step is theSummoner:
https://github.com/HausDAO/daohaus-app/blob/feature/legoland/src/components/theSummoner.jsx

If you set up all the legos correctly, you won't need to touch that stuff.

### Minion vault page


#### Transfer forms front end code notes

erc20 and network transfer forms 
- in general we can replace the neapolitan minion logic
- https://github.com/HausDAO/daohaus-app/blob/feature/legoland/src/components/minionTransfer.jsx
- update getMinionActionFormLego in
    - https://github.com/HausDAO/daohaus-app/blob/feature/legoland/src/utils/vaults.js
    - add the safe type

- it will use this form lego
    - MINION_SEND_ERC20_TOKEN
    - this function `getMinionActionFormLego` will replace with a new tx lego

- create the tx lego
    - replace MINION_SEND_ERC20_TOKEN_NEAPOLITAN
        - https://github.com/HausDAO/daohaus-app/blob/feature/legoland/src/data/contractTX.js#L585
    - we will need a new type of 'gatherArgs' function, i think
        - like encodeHex, but it should mimic this:
        - https://github.com/HausDAO/MinionSummonerV2/blob/main/test/safe-minion-test.ts#L271
        - https://github.com/HausDAO/MinionSummonerV2/blob/fde0500ab4e4ae64352c6b5bdd628b003c5317ed/test/util.ts#L31



___




### Proposal forms
- simple single action proposal form with proper encoding for new proposeAction
- stepper integration for multiple action (w/ jord)
- vault forms
    - send erc20
    - send network token
    - transfer 721
    - transfer 1155
- playlist
    - payroll form
    - simple minion proposal
    - stepper forms - multiple actions


### proposal details
- change how we get action and display
- display action data
- execute minion
    - use isPassed to check if needing execution