SignTransaction
The easiest and most recommended way to send a transaction is via SignAndSendTransaction. It is safer for users, and a simpler API for developers, for Phantom to submit the transaction immediately after signing it instead of relying on the application to do so.
However, it is also possible for an app to request just the signature from Phantom. Once signed, an app can submit the transaction itself using web3.js's sendRawTransaction
.
Base URL
Query String Parameters
dapp_encryption_public_key
(required): The original encryption public key used from the app side for an existing Connect session.nonce
(required): A nonce used for encrypting the request, encoded in base58.redirect_link
(required): The URI where Phantom should redirect the user upon completion. Please review Specifying Redirects for more details. URL-encoded.payload
(required): An encrypted JSON string with the following fields:transaction
(required): The transaction that Phantom will sign, serialized and encoded in base58.session
(required): The session token received from the Connect method. Please see Handling Sessions for more details.
Returns
✅ Approve
nonce
: A nonce used for encrypting the response, encoded in base58.data
: An encrypted JSON string. Refer to Encryption to learn how apps can decryptdata
using a shared secret. Encrypted bytes are encoded in base58.transaction
: The signed, serialized transaction that is base58 encoded. Phantom will not submit this transactions. An application can submit this transactions itself via web3.js's sendRawTransaction.
❌Reject
An errorCode
and errorMessage
as query parameters. Please refer to Errors for a full list of possible error codes.
Example
Please refer to the signTransaction
method implemented in our React Native demo application.
Last updated