Multisig Implementation in Mobile Crypto Wallet

TRUETECH is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
Multisig Implementation in Mobile Crypto Wallet
Complex
from 1 week to 3 months
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Implementing Multisig in Mobile Crypto Wallet

Multisig on mobile — not just "need N of M signatures." It's coordination between devices or people, managing signing state, storing pending transactions, and UX where user understands where they are. Stack and complexity depend on what exactly "multisig" means.

Two Completely Different Approaches

Smart contract multisig (Safe/Gnosis). Contract checks N signatures before execution. Transaction stored in contract as pending. Each signer independently approves via approveHash. Simple solution for team wallet. Mobile app — client to Safe Transaction Service API (safe-transaction-service), which stores pending-transactions offchain.

MPC (Multi-Party Computation). Private key never physically assembled in one place. Each party stores key shard, signature generated jointly via GG20 or CGGMP21 protocols (Threshold ECDSA). Complex implementation, no onchain trace, works with any contract.

For consumer wallets often need MPC (1 shard on device, 1 on server — 2-of-2 scheme protecting from device theft). For corporate — Safe 3-of-5.

Implementing Safe Multisig on Mobile

Integration via Safe{Core} SDK:

import { SafeFactory, SafeAccountConfig } from '@safe-global/protocol-kit'

const safeAccountConfig: SafeAccountConfig = {
  owners: [owner1Address, owner2Address, owner3Address],
  threshold: 2,
}

const safeFactory = await SafeFactory.create({ ethAdapter })
const safe = await safeFactory.deploySafe({ safeAccountConfig })

For signing pending transaction:

const safeTransaction = await safe.createTransaction({
  transactions: [{ to, data, value }]
})

const txHash = await safe.getTransactionHash(safeTransaction)
const signature = await safe.signTransactionHash(txHash)

await safeTxService.proposeTransaction({
  safeAddress, safeTransactionData: safeTransaction.data,
  safeTxHash: txHash, senderSignature: signature.data
})

Second signer gets push notification, sees transaction details, confirms with their signature. When N collected — app sends executeTransaction.

MPC: Implementing Natively

For 2-of-2 scheme (phone + server) use open-source libraries: tss-lib (Go), multi-party-ecdsa (Rust). On mobile — native module (Swift/Kotlin) with Rust bindings via UniFFI or C FFI.

Keygen — one-time message exchange between device and server via WebSocket. Result: each party gets shard, stores locally, full key never exists anywhere.

Transaction signature: interactive signing round (2–4 round-trips), takes 200–500ms with good connection. Acceptable, but show progress.

Managing Pending Transactions in UI

List transactions with statuses: pending_signatures (how many of N collected), ready (can execute), executed, rejected. Each transaction — details: recipient address, amount, call data (decoded if ABI known). Notify signers via FCM/APNs.

Process

Audit requirements: Safe vs MPC, signer count, notification flow. Safe integration — 1–2 weeks (SDK + Safe Transaction Service + UI). MPC with native libraries — 1–3 months (keygen, signing, correctness testing, security audit). Custom pricing.