SignAndSendTransaction
Last updated
Last updated
Once an application is connected to Phantom, it can prompt the user for permission to send transactions on their behalf.
In order to send a transaction, an application must:
Create an unsigned transaction.
Have the transaction be signed and submitted to the network by the user's Phantom wallet.
Optionally await network confirmation using a Solana JSON RPC connection.
For more information about the nature of Solana transactions, please review the as well as the .
For a sample transaction using Phantom deeplinks, check out our .
dapp_encryption_public_key
(required): The original encryption public key used from the app side for an existing 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 for more details. URL-encoded.
payload
(required): An encrypted JSON string with the following fields:
transaction
(required): The that Phantom will sign and submit, serialized and encoded in base58.
sendOptions
(optional): An optional object that specifies options for how Phantom should submit the transaction. This object is .
session
(required): The session token received from the method. Please see for more details.
nonce
: A nonce used for encrypting the response, encoded in base58.
data
: An encrypted JSON string. Refer to to learn how apps can decrypt data
using a shared secret. Encrypted bytes are encoded in base58.
signature
: The first signature in the transaction, which can be used as its .
An errorCode
and errorMessage
as query parameters. Please refer to for a full list of possible error codes.
Please refer to the .