Fields
Payload fields
At most one payload field is set on a request, and its name says what the request is. Names are given as in REST JSON; gRPC uses the snake_case names (evmSendNative is evm_send_native).
A request from a dApp uses the same payload fields as a request created through the API or in the MPCVault app.
source tells them apart: it is set only for dApp requests. The payload of a dApp request is the request as the dApp submitted it and MPCVault stored it; MPCVault does not check it again when it returns it.
Payloads without fields
The payload fields in the last five rows have an empty body, for example"fiatPayment": {}. The field name is all the API returns about the request. Use the MPCVault app to view its details.
A kind of request added to MPCVault appears as a payload field of its own. Treat a request whose payload field you do not recognize as a kind you cannot inspect.
Requests without a payload field
A request is returned without a payload field when the API has no body for it:- a dApp message other than the ones listed above: an EVM
eth_signmessage, and Stellar messages and authorization entries; - an Aptos dApp request to sign a transaction without submitting it, and a Stellar SEP-10 challenge transaction;
- a dApp transaction that arrived without a request method, or whose stored data cannot be returned, for example calldata that is not hex;
- a Stellar transfer or trustline whose asset is not an asset code and issuer, for example a token that is identified by a contract address.
source is set when the request came from a dApp.
Source
source is set only for requests that arrived from a dApp, and is null for every other request.
source.typeis the channel through which MPCVault received the request:TYPE_WALLET_CONNECT,TYPE_PLUGINorTYPE_MMI. MPCVault sets it and the dApp cannot choose it. It does not identify the dApp, plugin or person behind the request: any member of the vault can create a plugin request, for example.source.websiteis the website the dApp reports for itself. It is unverified text supplied by the dApp, with no validated format, and isnullwhen the dApp reported none.
By connection type
What a dApp request can carry depends on the channel it arrived through.
On every channel, a transaction whose stored data cannot be returned has no payload field either.
The other fields of a dApp request:
In
evmSendCustom, a dApp transaction differs from one created through the API in three fields, on all three channels: from and to are EIP-55 checksummed, nonce is returned (from the dApp, or the one a signer set), and gasFee holds the fee a signer set in the app plus the gas limit. The fee the dApp proposed is not returned.
Simulation
simulation is the result of simulating the transaction, returned for reference only. MPCVault stores it in a network-specific form (the provider’s response, an MPCVault summary of it, or a synthetic result; see the table below) and does not vouch for it. Run your own simulation before you rely on the outcome.
Encoding. simulation is bytes: base64 (standard alphabet, padded) in REST JSON, raw bytes over gRPC. The bytes are UTF-8 JSON text. The JSON schema depends on the network (table below); MPCVault does not define or version it. The text is the JSON as stored, which can be re-serialized (key order, whitespace) compared with the provider’s response.
"" for every other request, including plain transfers, messages, Bitcoin and TRON requests, and requests for which no simulation is stored (provider failure or timeout, quota exceeded, custom EVM networks). A Stellar simulation that failed is stored as a result with success false, not as an empty value. Resimulation (REST, gRPC) attempts to replace the stored value; see there for what a provider failure returns.
Verify independently
MPCVault returns a request as it holds it, together with its own view of it (evmInputDataDecode, simulation, source, notes). This is reference information, not a verification. To verify a request, run your own independent checks: decode the calldata yourself, simulate the transaction with your own provider, and compare addresses and amounts with your own records. Do not rely on these fields as your only check.