---
# System prepended metadata

title: Dappnode packages publishment through safe multisig

---

See [EIP-1271: SIGNING AND VERIFYING SMART CONTRACT SIGNATURES](https://ethereum.org/pt/developers/tutorials/eip-1271-smart-contract-signatures/)

1. Register dappnode safe with "publishers"
2. Create module to interact with the dappnode safe:
    - Define message to be signed -> IPFS hash?
    - Asks safe to add signed message -> sdk publish
        - A transaction to be executed before or together publishment transaction?
    - Determine the gnosis safe to use with the from Addres of the transaction.
    - Ask the determined safe`isValidSignature` mehod with the IPFS hash of the pkg for signature verification.
3. Implement above module in sdk-publish -> Add option to publish packages with a safe in the sdk-publish
4. Implement above module in dappmanager -> Verification of published package calling the safe.
  - dappmanager should either consider a package as signed when having standard signature.json from EOA or calling from Address safe (if available) `isValidSignature`
  - error handling must take into account all the edge cases when calling the from address and throwing an error:
      - Not a smart contract
      - Not signed !
      - Method does not exist
      - Other?
      - 