Blink
  • Blink
    • Welcome to Blink
  • Get Started
    • Tx Originators
    • Integration
      • General
      • Wallets
      • Oracles
      • Bots
      • Individual Users
      • Security
    • Custom Configuration
    • API Reference
      • eth_sendRawTransaction
      • eth_sendPrivateTransaction
      • eth_getTransactionByHash
      • eth_sendBundle
      • eth_getTransactionCount
    • Misc
      • Privacy Policy
  • How it works
    • State Update Auction
    • Gas Recoveries
    • MEV
  • Additional Features
    • Gas Sponsored Swaps
  • Searchers
    • Integration
      • Listen To Transactions
        • MEVBlocker Compatible (V2)
        • MEVBlocker Compatible (V3)
        • V1 (Deprecated)
      • Bid on Transactions
      • Querying a Bundle
    • API Reference
      • eth_sendBundle
      • eth_cancelBundle
      • Page
  • Base
    • API Reference
    • How it works
    • Searchers
  • Solana
    • Searchers
      • Integration
        • Rust Decoding A Transaction
      • API Reference
        • sendBundle
        • getSignature
  • CAREERS
    • Senior Software Engineer
Powered by GitBook
On this page
  • Listen to Transactions
  • Connecting to Blink's WebSocket
  • Bidding on Transactions
  • Submitting a Bid
  • Analysing Why Bids Fail
  1. Solana
  2. Searchers

Integration

PreviousSearchersNextRust Decoding A Transaction

Last updated 9 months ago

During the initial development of Blink, searchers will need to be onboarded for access. Searchers should reach out to or @YNBlink / @ciaranmcveigh on telegram or discord for access.

Listen to Transactions

The V1 WebSocket is designed for ease of integration. It auto subscribes and streams base64 serialized transactions. The signatures on the transactions have been altered (hashed) to prevent the use of the transaction outside of the auction.

Connecting to Blink's WebSocket

You can connect to Blink's WebSocket via wss://sol.blinklabs.xyz/api/v1/ws/{$API_KEY}.

As soon as you connect to the WebSocket transactions will sent over that connection.

Base64 Serialized Transaction

Ab+cAUlq2vEnbTnFZi670f8x5toICHnZjK3WyIgGanQGv5wBSWra8SdtOcVmLrvR/zHm2ggIedmMrdbIiAZqdAaAAQAHCztk/sV9Y2IfCczP0IUOcGfeaYIexr0Prv9nXZGWLGLsNeVXE8D7G87m7RKkh3bp9nE94KT4mBQ/f84Oo3ZC2tl/75g+sQ4ECjjMHLTxbAWgg/IEOdDJZaG4JTKl6MX/9FQFvCnwfXGlORA/Qr/dGwRBBFB870mhJMsOUMBd/LFyAwZGb+UhFzL/7K26csOb57yM5bvF9xJrLEObOkAAAACMlyWPTiSJ8bs9ECkUjg2DC1oTmdr/EIQEjnvY2+n4WQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKkEedVb8jHAbu50xW7OaBUH/bGy3qP0jlECsc2iVrwTjy+YLCGdWB4j9BDzIO5ZpUPa3anXkl1plaiJguteY/OftD/6J/XX9kp0wJsfKVh53ksJqzbfyd1RSzIap7OM5egXlD6fOwT5X44dRCOrmV0ykvlViyoizjkTFSMXPXWjaQcEAAkDwNQBAAAAAAAEAAUCwFwVAAUGAAEADgYHAQEGAgABDAIAAABAS0wAAAAAAAcBAQERCBsHAAECCAkDCggPBwsQCwwNCwsLCwsLCwsBAgAj5RfLl3rjrSoBAAAAB2QAAUBLTAAAAAAAcRkyAAAAAABkAFEHAwEAAAEJAcdYyZdfmfDp57MLefbtHsunsL12DtrY/SDx/1rC+8VMA65trANGBQc=

This is the same format as what is sent in the params of the .

Decoding in Rust

For rust users please note you need to decode into a VersionedTransaction. See "" for a code example.

Bidding on Transactions

Submitting a Bid

Bids are submitted to Blink via https://sol.blinklabs.xyz/api/v1/bundles/{$API_KEY} as a bundle.

The sendBundle endpoint operates the same way as Jito bundles. Blink enforces the User transaction to be the first in the array. This ensures no malicious MEV on the User's transaction. Bundles that do not put the users transaction first will be rejected. When the bundle is sent to Blink the signatures will be reinserted on the user transaction.

A sample "Post Body" below.

{
    "id": 1,
    "jsonrpc": "2.0",
    "method": "sendBundle",
    "params": [
        [
            "user_tx_base58_serialized",
            "searcher_tx_base58_serialized"
        ]
    ]
}

The endpoint will return a bundle hash, this is the SHA-256 hash of the bundle's transaction signatures. This will be the same as the expected Jito bundle hash. (Note: you can't compute these yourself as you don't have the real signatures)

{
    "id": 1,
    "jsonrpc": "2.0",
    "result": "b82190b536340d69c2437e54fe298449d9e44b32d1cb61144454145e01999315"
}

Analysing Why Bids Fail

Bundles are submitted using the RPC call along with an array of Base58 Serialized transactions. For the user transaction just take the Base64 that has been exposed on the websocket and convert to Base58.

The endpoint allows you to get the real signature after some delay, 30 seconds. This enables you to see the real transaction and work out why your bundle didn't land.

contact@blinklabs.xyz
sendTransaction RPC call
Rust Decoding
sendBundle
getSignature