Wallet as a Service is comprised of client libraries (that wrap HTTP API calls) and an React Native SDK. The API client libraries are for server-side development. The SDK is a subset of the APIs and used for mobile-native development.
Interacting with WaaS
There are several ways in which you will interact with WaaS while building your applications:
- In the UI at Coinbase Cloud, to create organizations, projects, and API keys.
- At a terminal, in the repos @coinbase/waas-client-library-go and @coinbase/waas-sdk-react-native.
- On a device, real or simulated, to test your work against iOS and/or Android.
Coinbase Cloud is a platform with blockchain infrastructure for building crypto projects with products like Wallet as a Service.
You'll start your WaaS journey in Cloud when you create your first API key pair under Settings > API management.
Wallet as a Service
WaaS APIs are canonically defined by a set of gRPC Protobuffers. They are only accessible through an equivalent set of HTTP endpoints, defined by an OpenAPI specification.
The WaaS APIs consist of a set of microservices for interacting with the blockchain. Each service is responsible for a distinct piece of functionality:
- BlockchainService: Read-only service with information about supported blockchain networks and assets.
- ProtocolService: Stateless service for constructing blockchain-specific cryptographic payloads such as addresses and transactions.
- PoolService: Top-level service for segregating keys, addresses, and funds into different pools.
- MPCKeyService: Service for managing MPC-based private keys, to be used with the WaaS SDK.
- MPCWalletService: Service for managing BIP-32-based HD wallets backed by MPC-based private keys and their associated asset balances, to be used with the WaaS SDK.
- MPCTransactionService: Service for transaction orchestration and nonce management.
The WaaS SDK is a client-side React Native library that is required for key management operations. It exposes a subset of the WaaS APIs to the mobile developer.
The WaaS SDK supports both iOS and Android.
For more on the SDK, see SDK APIs Overview.
iOS and Android
Was this helpful?