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

SignTransaction

PreviousSignAllTransactionsNextSignMessage

Last updated 2 years ago

Was this helpful?

The easiest and most recommended way to send a transaction is via . 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 .

Base URL

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

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
      "session": "...", // token received from connect-method
    }
    • transaction (required): The that Phantom will sign, serialized and encoded in base58.

    • 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
    {
        transaction: "...", // signed serialized transaction, base58 encoded
    }
{
  "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.

transaction: The signed, serialized transaction that is base58 encoded. Phantom will not submit this transactions. An application can submit this transactions itself via .

Reject

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

Please refer to the .

⛓️
✅
❌
SignAndSendTransaction
web3.js's sendRawTransaction
Connect
Specifying Redirects
transaction
Connect
Handling Sessions
Encryption
web3.js's sendRawTransaction
Errors
signTransaction method implemented in our React Native demo application