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:
| Leg | Share | Destination |
|---|---|---|
| Validator share | 90% | Your payout wallet, directly |
| Platform fee | 10% | 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-priceand--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
- 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.
- An AWS account you control, with a dedicated IAM deploy user.
The sibling repo's
deploy/PREREQUISITES.mdwalks through the one-time setup, about 30 to 45 minutes. - 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. - 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.shauto-selects the cheapest Nitro-capable instance available in your region, preferringc6a.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.