Wallet infrastructure is the hardest part of building a blockchain product for non-crypto users. WaaS moves that complexity from application teams to a shared infrastructure layer.
Every blockchain application needs to create wallets for users, sign transactions on their behalf or with their approval, manage gas, handle chain reconnection and failed transactions, and notify the application of on-chain events. Building this infrastructure in-house requires deep expertise in key management, cryptography, multi-chain RPC management, and transaction lifecycle handling. For most application teams, this is not a core competency — it is infrastructure that must work reliably without requiring constant engineering attention. Wallet-as-a-Service moves this complexity to a dedicated infrastructure layer: a REST API and SDK that application developers call to create wallets, sign transactions, query balances, and receive transaction event webhooks. PROPELOO builds WaaS platforms for infrastructure operators who want to offer this capability to developer customers, and builds WaaS integrations for applications that need embedded wallet functionality.
Frequently Asked Questions
What is the difference between custodial and MPC wallets?
Custodial: the WaaS platform generates and stores the full private key, typically in an HSM. The key exists as a complete entity in the HSM. MPC: the key is split into shares held by multiple parties (e.g., WaaS platform + developer + hardware device). No single party has the complete key. Transactions require a threshold of parties to sign. MPC eliminates single-point-of-key-compromise at higher operational complexity.
How do you handle RPC failures?
Multi-provider setup: we configure 2-3 RPC providers per chain. The primary provider handles all requests. On failure (timeout, error), the request automatically retries against the secondary provider. Failed transactions are queued and rebroadcast when connectivity restores. RPC provider health is monitored continuously with alerts on degradation.
Can the WaaS support our own nodes?
Yes. We build the connectivity layer to be provider-agnostic. You can run your own Ethereum/Polygon/etc. nodes and configure them as the primary RPC endpoint, with commercial providers as fallback. This is the standard setup for high-volume or latency-sensitive applications.
How do developers integrate?
Via REST API (language-agnostic) or language-specific SDK (JavaScript/TypeScript, Python). Core operations: createWallet(), getBalance(), sendTransaction(), getTransactionStatus(), registerWebhook(). Each takes under 10 lines with the SDK. Full documentation with copy-paste code examples.
How do embedded WaaS wallets handle social logins?
We integrate OpenID Connect (OIDC) and OAuth 2.0 authentication flows (Google, Apple, Telegram, Twitter). When a user authenticates with their social identity, a dedicated cryptographic key share is derived using zero-knowledge identity proofs, creating a non-custodial wallet instantly without requiring seed phrases.
Can developers sponsor gas fees for their users using paymasters?
Yes. Through ERC-4337 account abstraction infrastructure, developers can deposit gas sponsorship funds into an on-chain Paymaster contract. The WaaS SDK transparently signs gasless UserOperations, enabling zero-friction onboarding where users do not need to hold native blockchain tokens to interact.
How do you ensure enterprise-grade SLA uptime across multi-cloud infrastructure?
Our WaaS backend is deployed across active-active multi-region Kubernetes clusters with automated failover. We maintain continuous 99.99% service availability SLAs, backed by automated health checks, geo-distributed database clustering, and sub-100ms API response latency.
Does your WaaS support cross-chain asset swaps and fiat on-ramps inside the SDK?
Yes. We integrate cross-chain bridge aggregators (Li.Fi, Socket) and turnkey fiat on/off-ramps (Stripe Crypto, MoonPay, Sardine) directly into the client SDK, enabling end users to purchase crypto with credit cards or swap tokens across chains without leaving the parent application.