Wallet operations
Transaction lifecycle
BroSettlement separates product intent, signing, blockchain broadcast, lifecycle events, and ledger records.
This separation helps product, operations, and finance teams reason about the same movement from different perspectives.
Deposit lifecycle
- Wallet or address created
Your backend creates a wallet or deposit address for a product entity.
- Transaction observed
The blockchain gateway observes an incoming transaction.
- Event delivered
Your system receives a deposit.detected event.
- Confirmation threshold reached
BroSettlement sends a deposit.confirmed event when the transaction reaches the required confirmation state.
- Ledger entry posted
The ledger records the balance impact with stable identifiers.
Withdrawal lifecycle
- Intent created
Your backend creates a withdrawal or transfer intent.
- Policy evaluated
Your system and Co-Signer evaluate amount, destination, role, and approval policy.
- MPC signing session runs
The client Co-Signer and BroSettlement participate in threshold signing.
- Transaction broadcast
The signed transaction is broadcast to the target network.
- Events delivered
Your system receives signed, broadcasted, confirmed, or failed events.
- Ledger entries posted
Ledger records reflect withdrawal debit, network fees, and final state.
Event examples
| Event | Meaning |
|---|---|
deposit.detected | An incoming transaction was observed |
deposit.confirmed | The deposit reached the required confirmation state |
withdrawal.created | A withdrawal intent was created |
withdrawal.signed | The transaction was signed |
withdrawal.broadcasted | The transaction was broadcast to the network |
withdrawal.confirmed | The withdrawal reached the required confirmation state |
transaction.failed | A signing, broadcast, or network step failed |
Design principle
Use events for operational responsiveness. Use ledger entries for final balance and reconciliation state.