Search docs

Find a documentation page

Validators: overview

Sell your idle SWQoS capacity through a TEE in your own AWS account.

Why run this

Your stake earns SWQoS capacity on the Solana TPU whether you use it or not. The 2QUIC Marketplace lets you sell that capacity to traders per epoch, without ever exposing your Ed25519 identity key:

  • The key is provisioned into an AWS Nitro Enclave in your own AWS account. KMS decryption is gated by a PCR-bound policy, so only the measured enclave image can unseal it. The key never touches the marketplace, a browser, or the trader.
  • The enclave signs exactly one thing: TLS 1.3 CertificateVerify payloads for QUIC handshakes. Voting, consensus, and on-chain identity stay entirely on your validator.
  • The marketplace authorizes traders by issuing short-lived ES256 JWTs (10 minute default TTL) that your host-proxy verifies before forwarding any signing request. The marketplace is never on the data path: traders connect to your TEE endpoint directly.

You see handshake metadata only (who, when, volume). The TEE is invoked at handshake time and never sees transaction content, programs, or the trader's P&L.

The money

You set your own prices in SOL per epoch (one epoch is about 2 days, roughly 15 per month). Traders book 1 to 30 epochs at a time.

Payment is non-custodial. Each booking produces a Solana Pay transaction request that the trader signs from their own wallet. That single transaction contains two transfer legs:

LegShareDestination
Validator share90%Your payout wallet, directly
Platform fee10%Marketplace wallet

There is no custodial holding and no payout schedule: your share lands in your payout wallet the moment the trader's transaction finalizes. The fee rate and your payout wallet are frozen onto each lease at booking, so later changes never reprice existing bookings.

The payout wallet defaults to your identity pubkey at registration. You can point it at a different address (a cold wallet, for example) with validator-cli set-payout-wallet, which applies to future bookings only.

At list prices of 1 to 4 SOL per epoch, one trader booking covers the infrastructure cost many times over: break-even is roughly 2 SOL per month. See Pricing for how to position your listing.

What you sell: two offering modes

Every listing offers exclusive leases. Shared is opt-in:

  • Exclusive (always offered): one trader holds your full SWQoS bandwidth for the booked epoch range. You set the exclusive price at registration, and it is required to go live.
  • Shared (opt-in): multiple traders co-tenant the same epochs, each paying a separate (usually lower) shared price, capped at a seat count you choose. The per-trader handshake quota is split across seats, so the cap bounds dilution. Configure it at registration with --shared-price and --shared-seats (both or neither), or toggle it any time from the dashboard at /validator. Changes apply to new bookings only.

Exclusive and shared bookings never overlap on the same epochs: the marketplace enforces admission in the database, so you cannot be double-sold.

What you need

  1. A staked validator identity pubkey. Registration is hard-gated on your pubkey appearing in the current epoch's vote accounts. If you are not a staked validator, you cannot list.
  2. An AWS account you control, with a dedicated IAM deploy user. The sibling repo's deploy/PREREQUISITES.md walks through the one-time setup, about 30 to 45 minutes.
  3. Local tools: AWS CLI v2, Terraform 1.6+, Rust 1.92 (builds validator-cli), jq, grpcurl, openssl. Docker is needed only if you build the enclave from source instead of fetching a signed release.
  4. About $117/month in AWS costs (economy tier, on-demand, us-east-1, within ±15%): $112 compute, $2 storage, $1 KMS, ~$1 network, ~$1 S3. Other regions multiply the compute, storage, and network lines by up to 1.49x. You do not pick an instance type: deploy.sh auto-selects the cheapest Nitro-capable instance available in your region, preferring c6a.xlarge.

The listing tier (economy, standard, performance) is marketplace positioning only. The deploy always auto-selects the instance, and economy covers the workload: signing payloads are ~130 bytes and the TEE is only invoked on cold handshakes.

What gets deployed in your account

The deploy provisions a small, self-contained stack: a VPC with one public subnet and security group, an EC2 Nitro instance with an Elastic IP running the host-proxy and enclave, a KMS key with an attestation-gated policy, an S3 artefacts bucket, and the IAM roles plus SSM access used for provisioning. There is no NAT gateway, no load balancer, and no CloudWatch log group: logs stay on the host via journald.

Registration puts your listing live on /validators immediately. The marketplace then probes your TEE every 60 seconds to keep your health and reputation score fresh.

Get started

The recommended path is the web onboarding funnel at /validator. It verifies your stake, generates every install and register command prefilled, and attaches the listing to your account.