Technical Implementation
nonce: A simple counter which increments for each new transaction. Helps prevent replay attacks threshold: The number of required confirmations to execute a transaction isOwner: A mapping which is used to set and find if an address is an owner. ownersArr: An array listing the owner’s addresses
https://www.cyfrin.io/glossary/multisig-wallet-solidity-code-example
Submit a transaction Approve and revoke approval of pending transactions Execute a transaction after enough owners have approved it.
Even without any extensions, the Bitcoin protocol actually does facilitate a weak version of a concept of "smart contracts". UTXO in Bitcoin can be owned
https://bitcoinwiki.org/wiki/Multisignature
https://electrum.readthedocs.io/en/latest/multisig.html
nonce: A simple counter which increments for each new transaction. Helps prevent replay attacks
threshold: The number of required confirmations to execute a transaction
isOwner: A mapping which is used to set and find if an address is an owner.
ownersArr: An array listing the owner’s addresses
What Multisignature cannot do
You can't set a spending limit; anything on the account can be withdrawn by a single, properly signed transaction.
It has no time limit; once a transaction is signed, it allows you to withdraw all funds immediately.
It has no daily limit on the number of transactions: you can create thousands of transactions per minute.
It has no notifications; you don't get an SMS or email when the account status has changed[6].
It's possible, but note that on PUBLIC blockchain, everyone can deploy a SmartContract (if they can afford it). So you can't stop people from deploying code that you don't approve.
For your use-case: You can have your own smart-contract that deploys other contracts. However, inside of this "deployer contract" you can implement mutli-sig functionality/checks. Making sure only whitelisted/group of address is allowed to do that.
Typical Payment Flow
Funds are deposited into a contract-controlled “treasury” (often stablecoins for predictable accounting).
Payment conditions are defined in code (milestones, time locks, approvals, delivery confirmations, revenue events).
A trigger confirms the condition is satisfied.
The contract executes a transfer (single payout, batch payouts, or split payouts).
Every step is recorded on-chain for auditability and dispute reduction.


Hord protocol implementation of a simple multisig: HordCongress.sol contract https://github.com/hord/smart-contracts/blob/master/contracts/governance/HordCongress.sol
Compound protocol implementation of governance contract: GovernorAlpha.sol contract https://github.com/compound-finance/compound-protocol/blob/master/contracts/Governance/GovernorAlpha.sol
---
RESOURCES
It's possible, but note that on PUBLIC blockchain, everyone can deploy a SmartContract (if they can afford it). So you can't stop people from deploying code that you don't approve.
For your use-case: You can have your own smart-contract that deploys other contracts. However, inside of this "deployer contract" you can implement mutli-sig functionality/checks. Making sure only whitelisted/group of address is allowed to do that.
https://gwern.net/doc/bitcoin/nashx/2014-zimbeck.pdf
Is it possible to deploy a smart contract using multi-sig? i.e. contract will deploy only when multiple parties approve the tx?
https://medium.com/@krayon_digital/multisig-wallets-explained-bef603c2bd42
https://github.com/hyperliquid-dex/hyperliquid-python-sdk/tree/master
Last updated