Protocol
sBridge

2MPC Flow

Step-by-step signing flows for deposit and withdrawal using 2MPC dWallets

Deposit Flow

How a user moves an external asset onto SBChain using a 2MPC vault:

User initiates deposit in SwapBlok UI
        ↓
UI requests Key Share A participation from user's device
        ↓
ika.xyz dWallet network provides Key Share B
        ↓
2MPC protocol runs — full signing key never assembled
        ↓
Co-signed transaction locks funds in the 2MPC vault address
        ↓
Lock event emitted on source chain (Ethereum / Solana / Bitcoin / Tron)
        ↓
Relayer detects event, constructs Merkle proof
        ↓
SBChain consensus verifies proof independently
        ↓
Equivalent IOU or wrapped asset minted to user's SBChain account

Withdrawal Flow

How a user moves an asset back to an external chain:

User initiates withdrawal in SwapBlok UI
        ↓
SBChain burns / locks the on-chain asset
        ↓
Withdrawal request recorded on SBChain
        ↓
UI requests Key Share A from user's device
        ↓
ika.xyz dWallet network provides Key Share B
        ↓
2MPC protocol produces co-signed release transaction
        ↓
Release transaction broadcast to destination chain
        ↓
Funds arrive at user's external address

Why Neither Party Can Act Alone

  • SwapBlok has no key share — it cannot initiate or block a transaction independently
  • ika.xyz has Key Share B only — useless without the user's Key Share A
  • The user has Key Share A only — useless without ika.xyz providing Key Share B
  • Only the user, by actively participating in the MPC protocol, can authorise movement of their funds

2MPC Primitive Summary

PrimitiveRoleHolder
Key Share AUser signing contributionUser's device (never transmitted)
Key Share BNetwork signing contributionika.xyz dWallet network (distributed)
MPC SessionCombines shares without revealing eitherComputed jointly — key never assembled
Vault AddressOn-chain address controlled by the 2MPC keyDeterministic from both shares