Logo0v Network

Transaction Send

Send transactions using the 0v.network API

API

You can send JSON-RPC requests to any Endpoint using the following URLs. To route to a specific region, specify the desired region:

LocationEndpoint
New Yorkhttps://ny.transend.0v.network

📨 Transactions(/api/v1/transactions)

For single transaction-related methods, use the URL path /api/v1/transactions

For example: https://ny.transend.0v.network/api/v1/transactions

sendTransaction

This method acts as a direct proxy to the Solana sendTransaction RPC method, but forwards your transaction directly to the validator. By default, it submits the transaction with providing MEV protection.

Please note that we enforces a minimum tip of 2000 lamports for bundles. During high-demand periods, this minimum tip might not be sufficient to successfully navigate the auction.

For cost efficiency, you can enable revert protection by setting the query parameter bundleOnly=true. With this setting, the transaction is sent exclusively as a single transaction bundle.

Additionally, this method always sets skip_preflight=true, which means the transaction won’t be simulated in the RPC before being sent to the leader.

Request

ParameterTypeDescription
paramsstringREQUIRED: First Transaction Signature embedded in the transaction, as base64 encoded string.

Transaction Request Example

curl https://ny.transend.0v.network/api/v1/transactions -X POST -H "Content-Type: application/json" -d '
{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "sendTransaction",
  "params": [
    "AVXo5X7UNzpuOmYzkZ+fqHDGiRLTSMlWlUCcZKzEV5CIKlrdvZa3/2GrJJfPrXgZqJbYDaGiOnP99tI/sRJfiwwBAAEDRQ/n5E5CLbMbHanUG3+iVvBAWZu0WFM6NoB5xfybQ7kNwwgfIhv6odn2qTUu/gOisDtaeCW1qlwW/gx3ccr/4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvsInicc+E3IZzLqeA+iM5cn9kSaeFzOuClz1Z2kZQy0BAgIAAQwCAAAAAPIFKgEAAAA=",
  ]
}

Response

FieldTypeDescription
resultstringBundle id or Transaction id

💼 Bundles (/api/v1/bundles)

Submits a bundled list of signed transactions to the cluster for processing. The transactions are atomically processed in order, meaning if any transaction fails, the entire bundle is rejected (all or nothing). This method relays the bundle created by clients to the leader without any modifications. If the bundle is set to expire after the next Jito-Solana leader, this method immediately returns a success response with a bundle_id, indicating the bundle has been received. This does not guarantee the bundle will be processed or land on-chain. To check the bundle status, use getBundleStatuses with the bundle_id.

A tip is necessary for the bundle to be considered. The tip can be any instruction, that transfers SOL to one of the tip accounts. Clients should ensure they have sufficient balance and state assertions allowing the tip to go through conditionally, especially if tipping as a separate transaction. If the tip is too low, the bundle might not be selected during the auction. Use getTipAccounts to retrieve the tip accounts. Ideally, select one of the accounts at random to reduce contention.

Request

ParameterTypeDescription
paramsarray[string]REQUIRED: REQUIRED: Fully-signed transactions, as base64 encoded strings. Maximum of 4 transactions.

Bundle Request Example

curl https://ny.transend.0v.network/api/v1/bundles -X POST -H "Content-Type: application/json" -d '
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sendBundle",
  "params": [
    [
      "AT2AqtlokikUWgGNnSX5xrmdvBjSaiIPxvFz6zc5Abn5Z0CPFW5GO+Y3rXceLnqLgQFnGw0yTk3NtJdFNsbrwwQBAAIEsXPDJ9cMVbpFQYClVM7PGLh8JOfCD6E2vz5VNmBCF+p4Uhyxec67hYm1VqLV7JTSSYaC/fm7KvWtZOSRzEFT2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI1i3Wzl2VfewCI8oYXParnP78725sKFzYheTEn8v865YQIDABhqaXRvIGJ1bmRsZSAwOiBqaXRvIHRlc3QCAgABDAIAAACghgEAAAAAAA==",
      "AS6fOZuGDsmyYdd+RC0fiFUgNe1BYTOYT+1hkRXHAeroC8R60h3g34EPF5Ys8sGzVBMP9MDSTVgy1/SSTqpCtA4BAAIEsXPDJ9cMVbpFQYClVM7PGLh8JOfCD6E2vz5VNmBCF+p4Uhyxec67hYm1VqLV7JTSSYaC/fm7KvWtZOSRzEFT2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI1i3Wzl2VfewCI8oYXParnP78725sKFzYheTEn8v865YQIDABhqaXRvIGJ1bmRsZSAxOiBqaXRvIHRlc3QCAgABDAIAAACghgEAAAAAAA==",
      "AZBed/TbhHt8WTUbfdT9Ibi8vr9ZpPCPtav8HIUrlDaqqKOLuJldEPpb899WvnfrCm4Qtq7i/MNLDTde1sHVYwEBAAIEsXPDJ9cMVbpFQYClVM7PGLh8JOfCD6E2vz5VNmBCF+p4Uhyxec67hYm1VqLV7JTSSYaC/fm7KvWtZOSRzEFT2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI1i3Wzl2VfewCI8oYXParnP78725sKFzYheTEn8v865YQIDABhqaXRvIGJ1bmRsZSAyOiBqaXRvIHRlc3QCAgABDAIAAACghgEAAAAAAA==",
      "AbS0zOISjAjVgUqs+bBh8x93oNOBzVcBnwicjyXhKLJ6E0/EPi+HbLcBN1u/87Kf4nNS+PoK3lLmhHtLjTyyDw0BAAIEsXPDJ9cMVbpFQYClVM7PGLh8JOfCD6E2vz5VNmBCF+p4Uhyxec67hYm1VqLV7JTSSYaC/fm7KvWtZOSRzEFT2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI1i3Wzl2VfewCI8oYXParnP78725sKFzYheTEn8v865YQIDABhqaXRvIGJ1bmRsZSAzOiBqaXRvIHRlc3QCAgABDAIAAACghgEAAAAAAA==",
    ],
  ]
}'

Response

FieldTypeDescription
resultstringA bundle ID, used to identify the bundle. This is the SHA-256 hash of the bundle’s transaction signatures.

Response Example

{
    "jsonrpc": "2.0",
    "result": "2id3YC2jK9G5Wo2phDx4gJVAew8DcY5NAojnVuao8rkxwPYPe8cSwE5GzhEgJA2y8fVjDEo6iR6ykBvDxrTQrtpb",
    "id": 1
}

getTipAccounts

Retrieves the tip accounts designated for tip payments for bundles. The tip accounts have remained constant and can also be found here.

Request

ParameterTypeDescription
NoneNoneNone

Request Example

curl https://ny.transend.0v.network/api/v1/getTipAccounts -X POST -H "Content-Type: application/json" -d '
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getTipAccounts",
    "params": []
}
'

Response

{
  "jsonrpc": "2.0",
  "result": "2id3YC2jK9G5Wo2phDx4gJVAew8DcY5NAojnVuao8rkxwPYPe8cSwE5GzhEgJA2y8fVjDEo6iR6ykBvDxrTQrtpb",
  "id": 1
}
FieldTypeDescription
resultarray[string]Tip accounts as a list of strings.

Response Example

{
    "jsonrpc": "2.0",
    "result": [
        "tipFhKGRWw7ZWTxCoaHQj2xWp87TEZXk8REDU6B4hQ7"
    ],
    "id": 1
}

Tips

Best Practices for Tipping:

  1. Integrate tip instructions within your main transaction alongside core logic.
  2. If transaction space is constrained, implement post-transaction checks or add assertions in a separate tipping transaction to verify expected states.
  3. Exercise caution when sending tips as standalone transactions in bundles, as this may increase vulnerability to uncle bandit scenarios.

🪙 Tip Amount

sendTransaction

When using sendTransaction on bundle false mode, it is recommended to use a 70/30 split between priority fee and tip(e.g.):

Priority Fee (70%): 0.7 SOL
+
Tip (30%): 0.3 SOL
===========================
Total Fee: 1.0 SOL

sendBundle

When using sendBundle, only the tip matters.

JSON-RPC Authentication (UUID):

Please include the following when authenticating with a URL using a UUID:

Header Field: Include the API key in the x-auth header.

    Example: x-auth: <uuid>