Base URL
api.mpcvault.com:443 with TLS.
What You Can Build
- Automated Transactions - Create and execute transactions programmatically with API client signing
- Deposit Addresses - Generate unique deposit addresses for customer deposits across multiple chains
- Batch Payments - Process payroll, airdrops, and bulk transfers efficiently
- Message Signing - Sign messages and typed data for DeFi interactions and authentication
- Raw Signing - Sign transactions you build yourself or off-chain messages
Signing Flow
For transaction payloads on built-in networks, API client signing follows this flow whenbroadcastTx is omitted or true:
Quickstart
Use the same request lifecycle across supported networks. The network guides provide transaction and message payloads.Preparation
- An API token with vault access and an allowed caller IP.
- The vault UUID.
API wallet creation requires a client signer. Values in angle brackets are placeholders. Check the HTTP status and response
error field; see API Errors.
Create a wallet
For a new API wallet, call CreateWallet. For App signing, use an existing app-managed wallet and continue to create a signing request.networkType from Supported Networks. Save details.address and fund or activate it as described in the network guide. Wallet creation requires no separate execution call.
Create a signing request
Save the complete request JSON from your network guide assigning-request.json. Each request contains one transaction or message payload. Submit it with CreateSigningRequest:
signingRequest.uuid as <SIGNING_REQUEST_UUID>.
Review the request
Retrieve the signing request by UUID with GetSigningRequestDetails:Sign the request
ExecuteSigningRequests asks the API client signer to sign the request. The body contains only uuid; the signer key was saved in callbackClientSignerPublicKey at creation. For App signing, sign in the App and track the result.
ExecuteSigningRequests
broadcastTx: false, your application broadcasts the returned signedTransaction. Custom EVM networks always require application broadcast. Signing success does not confirm on-chain execution.
Track the result
Query the same UUID with GetSigningRequestDetails:
After broadcast, use
txHash with the network guide’s confirmation query. Check both execution and the intended transfer or contract result.
After a timeout, check the existing request and on-chain result before creating another request. See Idempotency.
Encode bytes
Data types and encodings defines REST byte encodings and the base64 command for prepared payloads.Sign a message
Sign off-chain messages for wallet login, proof of address ownership, or signing orders and authorizations. Select your network’s message type below and submit it with CreateSigningRequest, then sign the request. MPCVault applies the chain’s message format.
Omit
broadcastTx. Message signing returns signatures, with no transaction to broadcast and an empty txHash. To sign transactions you build yourself or messages you format yourself, use raw signing.
Raw signing
rawMessage lets you use MPCVault to sign transactions you build yourself, including transfers and contract calls. It also supports off-chain message signing.
MPCVault does not add chain-specific message prefixes or structured-message formats. Select the hash mode expected by the target protocol.
For an EVM, Bitcoin or TRON wallet with a 32-byte protocol signing digest prepared by your application:
content encodes the binary signing bytes, rather than their hex text representation. Omit broadcastTx for raw signing.
Save
signingRequest.uuid and sign the request.
Signature format
Message and raw signing share these return formats. Read the signed result from:- ExecuteSigningRequests:
signatures.signatures[]. - GetSigningRequestDetails:
signingRequest.signatures.signatures[].
See EVM message signing for recovery ID (
V) conventions.