Sending a Legacy Transaction

Once a web application is connected to Jelli, it can prompt the user for permission to send transactions on their behalf. Legacy transactions are the traditional Solana transaction format with a maximum size of 1,232 bytes and support for up to 35 accounts per transaction.

In order to send a transaction, a web application must:

  1. Create an unsigned transaction

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

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

For more information about the nature of Solana transactions, refer to the solana-web3.js documentation and the Solana Cookbook.


πŸ“‹ What You'll Learn

  1. Signing and sending legacy transactions

  2. Using the request() method for flexibility

  3. Handling multiple transactions

  4. Alternative signing methods

  5. Error handling and debugging


The easiest and most recommended way to send a transaction is by using the signAndSendTransaction method on the provider. This method handles both signing and network submission in a single call.

signAndSendTransaction() with Jelli

Enhanced SendOptions Support

πŸ” Jelli Enhancement: Automatic detection and logging of transaction type (Legacy vs Versioned) with detailed timing information.


πŸ”„ Using the request() Method

Jelli supports both the modern object format and legacy string format for the request() method, providing maximum compatibility.

Modern Object Format

Legacy String Format (Phantom Compatible)

πŸ’‘ Jelli Advantage: Supports both formats seamlessly, so existing Phantom code works without changes.


πŸ“¦ Sign and Send Multiple Transactions

Jelli supports batch transaction processing through the signAndSendAllTransactions method, which is more efficient and safer than individual transaction calls.

signAndSendAllTransactions() with Jelli

πŸš€ Jelli Enhancement: Progress tracking and detailed logging for each transaction in the batch.


The following methods are supported for legacy compatibility but are not recommended over signAndSendTransaction. It's safer for users, and simpler for developers, for Jelli to submit transactions immediately after signing.

πŸ“’ Important: These methods are not supported in the Wallet Standard implementation and may be removed in a future release. They are only available via the window.jelli.solana object.

Sign a Transaction (Without Sending)

Using request() for Signing Only

Sign Multiple Transactions (Legacy)


πŸ›‘οΈ Error Handling

Jelli uses exactly the same error codes as Phantom but with enhanced error messages and Jelli branding.

Complete Error Handling Example

Jelli Enhanced Error Details

πŸ” Jelli Exclusive Debugging Features

Enhanced Transaction Logging

Performance Monitoring


πŸš€ Complete Working Example


πŸ“š References

Last updated