Providing Transaction Bandwidth

As a validator, you can monetize your unused, stake-weighted transaction bandwidth by selling it on the Cascade Marketplace. This provides a new revenue stream for you and your delegators while helping to improve Solana's overall transaction delivery robustness.

The Validator's Opportunity in Transaction Delivery

One of the biggest challenges on a high-throughput network like Solana is managing network traffic to ensure a good user experience. Public validator endpoints are permissionless, making them a target for bot spam and congestion during periods of high demand.

To solve this, Solana provides multiple pathways for transaction delivery, making the entire system more robust. These routes include:

  • Public Ports: Free to use, but subject to intense competition and network congestion.

  • Jito Auctions: Allow searchers to bid for top-of-block priority inclusion.

  • Stake-Weighted Quality of Service (SWQoS): A mechanism that grants staked validators a reserved, private bandwidth allocation, proportional to their stake weight.

This reserved SWQoS bandwidth is a valuable, often underutilized asset. The Cascade Marketplace was created to connect validators who want to sell this capacity with applications and traders who need a reliable, priority pathway for their transactions, creating a fair market price for this bandwidth.


How It Works

Calculating Your Bandwidth

Your available transaction bandwidth is determined by your percentage of the total active stake in a given epoch, multiplied by the total network capacity of 500000 Packets Per Second (PPS). Example: A validator with 0.1% of the total stake has 500 PPS of bandwidth to use or sell.

Marketplace Operation

We operate the auction, collect bids from buyers, determine the market-clearing floor price, and handle all customer billing and support.

Revenue Share

Revenue from the marketplace is split, with 55% going to the bandwidth provider (you) and your delegators, and 45% to Triton One as the marketplace operator.

Compliance

Participation in the marketplace requires AML/KYC verification to comply with regulations.


Technical Onboarding Guide

To begin providing bandwidth, you'll need to install and configure our open-source forwarding agent, Yellowstone Jet.

Step 1: Install Yellowstone Jet

Yellowstone Jet is a transaction forwarder that receives transactions from the Cascade network via gRPC and forwards them to the leader using your validator's identity over QUIC. You can run Jet on your validator node or on a separate machine. 👉 Get Yellowstone Jet on GitHub

Step 2: Receive Marketplace Credentials

Once you are approved as a provider, our support team will issue you a marketplace endpoint and a secret token for your Jet instance to authenticate.

Step 3: Configure Jet

You will need to create a yml configuration file for Jet. The configuration specifies your validator identity, the upstream RPC/gRPC endpoints, and the Cascade gateway credentials we provide.

Example `yellowstone-jet.yml` Configuration
tracing:
  json: true

features:
  enabled_features:
    - transaction_payload_v2
    - yellowstone_shield

identity:
  # The public key of your validator identity
  expected: << validator_identity_pubkey >>
  # Optional: path to your keypair file if loading statically
  # keypair: /path/to/validator-keypair.json

upstream:
  # Your node's gRPC endpoint, or one provided by us
  primary_grpc:
    endpoint: << grpc_endpoint >>
    x_token: << grpc_token_if_any >>
  # An RPC endpoint that supports gPA, we recommend using one provided by us
  rpc: https://<< rpc_endpoint >>/<< rpc_token >>
  cluster_nodes_update_interval: 30s

# Credentials provided by Triton One
jet_gateway:
  endpoints:
    - << cascade_gateway_endpoint >>
  x_token: << cascade_gateway_token >>

# Admin server for metrics
listen_admin:
  bind:
    - 127.0.0.1:11888

# ... other sections like quic, send_transaction_service etc.
# Refer to the GitHub repository for a full configuration file.

Step 4: Run Jet as a Service

We recommend running Jet as a systemd service to ensure it's always running.

Example `yellowstone-jet.service` file
[Unit]
Description=Yellowstone Jet transaction forwarder
After=network-online.target
StartLimitIntervalSec=0

[Service]
Type=simple
User=solana
Group=solana
ExecStart=/path/to/your/yellowstone-jet --config /etc/yellowstone-jet.yml
Restart=always
RestartSec=5
LimitNOFILE=700000

[Install]
WantedBy=multi-user.target

Step 5: Load Your Validator Identity

For security, Jet can load your validator identity at runtime without it ever touching the disk. After starting the service, run one of the following commands:

# To load from a keypair file (Jet needs read access)
/path/to/yellowstone-jet admin set-identity --identity /path/to/validator-keypair.json

# To load from stdin (more secure, no file access needed)
cat /path/to/validator-keypair.json | /path/to/yellowstone-jet admin set-identity

Step 6: Verify Operation

You can check that your Jet instance is running and connected by fetching its metrics:

curl -s http://127.0.0.1:11888/metrics

Last updated

Was this helpful?