Phantom Developer Docs
HomeDeveloper Forums
  • 👻Introduction
    • Introduction
  • 🟩Solana
    • Getting Started With Solana
    • Detecting the Provider
    • Establishing a Connection
    • Sending a Legacy Transaction
    • Sending a Versioned Transaction
    • Signing a Message
    • Error Messages and Codes
  • 🔷Ethereum, Monad Testnet, Base, & Polygon
    • Getting Started with EVM networks
    • Detecting the Provider
    • Establishing a Connection
    • Sending a Transaction
    • Signing a Message
    • Provider API Reference
      • Properties
        • isPhantom
        • chainId
        • networkVersion
        • selectedAddress
        • _events
        • _eventsCount
      • Events
        • Connect
        • Accounts Changed
        • Disconnect
        • Chain Changed
      • Methods
        • isConnected
        • request
      • Error Messages & Codes
  • 🌊Sui
    • Getting Started with Sui
    • Detecting the Provider
    • Establishing a Connection
    • Sending a Transaction
    • Signing a Message
  • 🟠Bitcoin
    • Getting Started With Bitcoin
    • Detecting the Provider
    • Establishing a Connection
    • Sending a Transaction
    • Signing a Message
    • Provider API Reference
  • ⛓️Phantom Deeplinks
    • Phantom Deeplinks
    • Provider Methods
      • Connect
      • Disconnect
      • SignAndSendTransaction
      • SignAllTransactions
      • SignTransaction
      • SignMessage
    • Other Methods
      • Browse
      • Fungible
      • Swap
    • Handling Sessions
    • Specifying Redirects
    • Encryption
    • Limitations
  • 🛠️Developer Powertools
    • Auto-Confirm
    • Domain and Transaction Warnings
    • Mobile Web Debugging
    • Phantom Blocklist
    • Shortcuts
    • Sign-In-With (SIW) Standards
    • Solana Actions & Blinks
    • Solana Priority Fees
    • Solana Token Extensions (Token22)
    • Solana Versioned Transactions
    • Testnet Mode
    • Token Pages
    • Wallet Standard
  • ✅Best Practices
    • Launching a Dapp
    • Displaying Apps within the Activity Tab
    • Displaying Apps within Dialogs
    • Displaying Tokens on Solana
      • Fungibles
      • NFTs & Semi-Fungibles
      • Supported Media Types
  • 🙋Resources
    • FAQ
    • Demo Applications
    • Community Guides & SDKs
    • Logos & Assets
Powered by GitBook
On this page
  • Base URL
  • Query String Parameters
  • Returns
  • Example

Was this helpful?

  1. Phantom Deeplinks
  2. Provider Methods

SignAndSendTransaction

PreviousDisconnectNextSignAllTransactions

Last updated 2 years ago

Was this helpful?

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:

  1. Create an unsigned transaction.

  2. Have the transaction be signed and submitted to the network by the user's Phantom wallet.

  3. 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 .

Base URL

https://phantom.app/ul/v1/signAndSendTransaction

Query String Parameters

  • 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": "...", // serialized transaction, base58-encoded
      "sendOptions": "..." // an optional Solana web3.js sendOptions object
      "session": "...", // token received from the connect method
    }
    • 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.

Returns

  • nonce: A nonce used for encrypting the response, encoded in base58.

  • // content of decrypted `data`-parameter
    {
      "signature": "..." // transaction-signature
    }
{
  "errorCode": "...",
  "errorMessage": "..."
}

Example

Approve

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 .

Reject

An errorCode and errorMessage as query parameters. Please refer to for a full list of possible error codes.

Please refer to the .

⛓️
✅
❌
Encryption
transaction id
Errors
signAndSendTransaction method implemented in our React Native demo application
solana-web3.js docs
Solana Cookbook
Connect
Specifying Redirects
transaction
defined in Solana web3.js
Connect
Handling Sessions
deeplinking demo app