Overview
The contracts/multisig_transfer contract implements exactly what enterprise asset transfer needs: admin-defined approval rules per category, transfer requests with expiry, multiple signers, delayed execution. The web2 transfers module ([BE-18]) implements single-approver logic. This issue wires the two together for high-value asset categories.
What to Build
- Config: per-category flag
requiresMultisig + on-chain rule setup (admin defines required approvers per category via the contract's rules API) — admin UI minimal: a settings section listing categories with the multisig toggle and approver addresses
- Flow: when a transfer request ([BE-18]) targets a multisig category, the backend (via [SC-01]) creates the on-chain transfer request; approvers sign approvals with their wallets ([SC-03]) from the transfers inbox ([FE-08]), which gains an "on-chain approvals: 2/3" progress indicator; once the threshold is met and the delay passes, execution completes the web2 transfer
- Sync: a poller or queue job reconciles on-chain approval state with the web2 request status; expiry on-chain cancels the web2 request
- Non-multisig categories keep the plain [BE-18] flow untouched
References
- Contract:
contracts/multisig_transfer/src/ (rules.rs, approvals.rs, registry.rs)
- Blocked by [SC-01], [SC-03], [BE-18], [FE-08]
Acceptance Criteria
Overview
The
contracts/multisig_transfercontract implements exactly what enterprise asset transfer needs: admin-defined approval rules per category, transfer requests with expiry, multiple signers, delayed execution. The web2 transfers module ([BE-18]) implements single-approver logic. This issue wires the two together for high-value asset categories.What to Build
requiresMultisig+ on-chain rule setup (admin defines required approvers per category via the contract's rules API) — admin UI minimal: a settings section listing categories with the multisig toggle and approver addressesReferences
contracts/multisig_transfer/src/(rules.rs,approvals.rs,registry.rs)Acceptance Criteria