OpenZeppelin / OpenZeppelin/guardian
Feature request: amount-tiered signature thresholds for send_asset
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 10
- Forks
- 20
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 43
Description
Problem
Add support for amount-tiered signature thresholds on send_asset, so the number of cosigner signatures required scales with the transaction's value (and optionally per-faucet).
Today the transaction_threshold is computed purely from which procedures the tx calls (per the cryptography audit). The amount field of a p2id send is opaque to the threshold logic — confirmed in P2idProposalMetadata, which carries only recipientId, faucetId, amount with no tier or limit field.
This means a treasury sending 1 USDC and a treasury sending 1,000,000 USDC require exactly the same number of signatures. There's no native way to express "small ops should be fast, large transfers should require unanimous review."
A multisig configured for the current model has to pick one of two unsatisfying defaults:
- Low send_asset threshold → small operational sends are fast, but the same threshold enables draining the treasury.
- High send_asset threshold → large transfers are properly gated, but every petty-cash send becomes a coordination event.
Amount-tiered thresholds resolve this trade-off and are table-stakes for production-grade multisigs targeting institutional treasuries — Safe (via Allowance / Spending Limit modules), Squads (Spending Limits), Fireblocks (policy engine), and BitGo (wallet policy) all ship this primitive.
Adding it to Miden multisig would unlock realistic treasury operations: small recurring spends approved quickly, mid-tier vendor payments requiring a majority, large capital allocations requiring unanimous consent — all under a single account, configurable per faucet.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the send_asset threshold logic described in the issue and inspect packages/miden-multisig-client/src/types/proposal.ts, especially P2idProposalMetadata, alongside the linked cryptography audit. Define how amount tiers and optional per-faucet limits should be represented and evaluated, then verify that small, mid-tier, and large transfers require the configured signature counts.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- authorization, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100