SignAndSendTransaction

Once connected to Solflare, an application can ask 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 Solflare wallet.

3. Optionally await network confirmation using a Solana JSON RPC connection.

For more information about the nature of Solana transactions, please review the solana-web3.js docs, as well as the Solana Cookbook.

Base URL

https://solflare.com/ul/v1/signAndSendTransaction  

Query String Parameters

  • dapp_encryption_public_key (required): The original encryption public key used from the app for an existing Connect session.

  • nonce (required): A nonce used for encrypting the request, encoded in base58.

  • redirect_link (required): The URI where Solflare 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": "...", // serialized transaction, base58-encoded
  "sendOptions": "..." // an optional Solana web3.js sendOptions object
  "session": "...", // token received from the connect method
}
  • transaction (required): The transaction Solflare will sign and submit is serialized and encoded in base58.

  • sendOptions (optional): An optional object that specifies options for how Solflare should submit the transaction. This object is defined in Solana web3.js.

  • 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 decrypt data using a shared secret. Encrypted bytes are encoded in base58.

// content of decrypted `data`-parameter
{  
    "signature": "..." // transaction-signature
}
  • signature: The first signature in the transaction can be used as its transaction id.

Reject

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

{          
    "errorCode": "...",          
    "errorMessage": "..."          
}  

Example

Please refer to the signAndSendTransaction method implemented in our demo application.

Last updated