Skip to content

[SC-07] Integrate multisig transfer approvals for high-value asset categories #1119

Description

@yusuftomilola

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

  1. 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
  2. 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
  3. Sync: a poller or queue job reconciles on-chain approval state with the web2 request status; expiry on-chain cancels the web2 request
  4. 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

  • A multisig-flagged category's transfer requires N wallet approvals before executing
  • Approval progress visible in the transfers inbox in near-real-time
  • Expired on-chain requests cancel cleanly on both sides
  • Ordinary transfers are completely unaffected

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions