Whitepaper
Nine sections and an errata block, written against the running code. Formulas and tables on this page read the same constants the server uses.
Siliq
Paying verified browser GPU work in the tokenized stock of the chip's makers
- Author
- Siliq
- Date
- September 17, 2026
- Chain
- Robinhood Chain, 4663
- Status
- pre-launch
Abstract
Siliq measures sustained work on consumer GPUs from a browser tab and pays for it in tokenized equities of the companies that made each GPU. 5 WebGPU instruments convert throughput into a common unit, the Siliq compute unit (SCU). A server issues signed run tokens, caps scores at per-vendor ceilings and accrues dollar rewards. Every 6 hours a settler converts those rewards into token amounts and signs them as EIP-712 vouchers, which a contract on Robinhood Chain pays from 11 stock tokens it holds. The same GPUs serve an OpenAI-compatible inference queue, and payments for API keys and render jobs refill the vault. A utility token, $SILQ, gates paid runs. This paper states the formulas and constants in the code, and it lists what the system does not verify yet.
1Introduction
A GPU is the product of a short supply chain. One company designs the chip, a foundry manufactures it, and a memory maker supplies the DRAM beside it. Packaging houses and toolmakers finish the part. Most of these companies are listed, and Robinhood Chain carries tokenized versions of their shares as ERC-20 tokens.
Siliq connects the two. A GPU owner lends the card to a browser workload, the server verifies the run within stated limits, and the reward is split across the tokens of that card's makers. The design goals:
- Nothing to install. A desktop browser with WebGPU is enough, and WebGL2 covers one instrument.
- Rewards held, never printed. Every payout comes from tokens a public vault already holds.
- Stated limits. Each check the system performs, and each one it does not, is written down.
- Useful work. The GPUs that run instruments also answer prompts and render frames for paying users.
2System
Siliq has five parts: the browser client, the API server, the settler, the vault contract, and the workers that serve inference. The server runs on Vercel and keeps shared state in Upstash Redis. One run moves through seven stages.
| # | Stage | Actor | What happens | Check |
|---|---|---|---|---|
| 1 | Detect | browser | Reads the WebGPU adapter strings, or the WebGL2 renderer string. | Server derives vendor and split from the strings. |
| 2 | Start | server | Issues a run token signed with HMAC-SHA256. | Hourly limit, pass, tier, GPUs at once. |
| 3 | Run | browser | Holds one instrument at full load for L = 15, 30 or 60 minutes. | Heartbeats keep the run listed as online. |
| 4 | Complete | server | Accepts the score once, inside the time window. | Ceiling clamp, holding read again. |
| 5 | Accrue | server | Adds the dollar reward to the wallet's ledger for the open cycle, split by lineage. | Governor rate from the last settlement. |
| 6 | Settle | settler | Every 6 h, converts dollars to token amounts and signs one voucher per wallet. | Cycle budget, per-token cap. |
| 7 | Claim | wallet | Calls claim() on the vault. | EIP-712 signature, one claim per cycle. |
Inference runs beside this loop. Open-model prompts wait in a queue per model. A miner tab running SLQ-05, or a registered headless node, pulls a prompt for a model it holds in memory, decodes it and posts the text back. Frontier models skip the queue and go to their provider on the caller's key.
3Instruments
Each instrument is a WGSL compute workload with its own unit. The client reports the sustained score, the throughput held across the run, and the server converts it into work.
W = s′ × 60 × L SCU = W ÷ wᵢ(1)
| Part | Workload | Unit | wᵢ | WebGL2 |
|---|---|---|---|---|
| SLQ-01 compute | chained fused multiply-add over a million vec4 lanes | TF | 28 teraflops | yes |
| SLQ-02 memory | streaming upload, GPU copy and strided readback through 256 MB | GB/S | 18 GB moved | no |
| SLQ-03 render | path tracer, 4 bounces, seeded sphere field over a ground plane | MP/S | 45,000 megapaths | no |
| SLQ-04 matrix | tiled SGEMM with workgroup memory, 1024 x 1024 | TF | 9 teraflops | no |
| SLQ-05 inference | transformer forward pass, 12 layers, 128 tokens, GPT-2 small shape | TF | 5 teraflops | no |
3.1 Calibration
The weights wi are set so a minute on one card earns about the same on every instrument. Table 3 applies formula (1) to scores measured on one RTX 5060 Ti over a 15 minute run. The five results land within 4% of each other.
| Part | Measured score | SCU |
|---|---|---|
| SLQ-01 | 6.3 TF | 202.5 |
| SLQ-02 | 4.1 GB/S | 205 |
| SLQ-03 | 10,100 MP/S | 202 |
| SLQ-04 | 2.05 TF | 205 |
| SLQ-05 | 1.1 TF | 198 |
3.2 SLQ-01 in detail
SLQ-01 runs a dependent chain of fused multiply-add passes over 1,048,576 vec4 lanes at fp32, 16 MB resident. Each pass reads the output of the one before, so the GPU cannot skip ahead or reuse a cached result. The client waits on queue.onSubmittedWorkDone() between passes, and where the adapter supports timestamp queries, the GPU's own clock times the work.
4Lineage map
The client reports vendor, architecture, device and description from WebGPU, or the unmasked renderer string from WebGL2. The server matches these strings against vendor patterns in a fixed order (NVIDIA, Apple, AMD, Intel, Qualcomm, Arm) and falls back to unknown. It then names the family, process node and memory type where it can. The split depends on the vendor alone.
| Vendor | Slice 1 | Slice 2 | Slice 3 | Slice 4 |
|---|---|---|---|---|
| NVIDIA | NVDA 50design | TSM 30foundry | SKHY 13memory | SMH 7packaging + tools |
| Apple | AAPL 48design | TSM 32foundry | SKHY 10memory | SMH 10packaging + tools |
| AMD | AMD 47design | TSM 31foundry | EWY 12memory | SMH 10packaging + tools |
| Intel | INTC 55design + manufacturing | TSM 25foundry | EWY 10memory | SMH 10packaging + tools |
| Qualcomm | QCOM 50design | TSM 30foundry | EWY 10memory | SMH 10packaging + tools |
| Arm (Mali) | TSM 40foundry | ASML 25lithography | MU 25memory | SMH 10the rest |
| Unknown | TSM 45foundry | ASML 25lithography | MU 20memory | SMH 10the rest |
Roles follow who built what. SMH, a semiconductor ETF, stands in for packaging, tools and the rest of the chain. Samsung has no stock token on Robinhood Chain, so its slice is paid in EWY, a South Korea ETF. Mali GPUs and unrecognised adapters carry no designer slice; their split goes to the foundry, lithography, memory and the ETF.
5Verification
5.1 Run tokens
A run token is the base64url JSON of the run's claims (run id, instrument, length, start time, hashed address, country, wallet, tier, mode, vendor, device label, family, graphics API) followed by an HMAC-SHA256 of that body under a server secret. The server accepts one completion per run id; a second returns 409.
5.2 Timing and ceilings
60 × L − 20 ≤ t ≤ 60 × L + 900 s′ = min(s, C_v,i)(2)
| Vendor family | SLQ-01 | SLQ-02 | SLQ-03 | SLQ-04 | SLQ-05 |
|---|---|---|---|---|---|
| NVIDIA | 20 | 16 | 36,000 | 7 | 4 |
| Apple | 10 | 16 | 16,000 | 3.5 | 2 |
| AMD | 15 | 14 | 27,000 | 5.5 | 3 |
| Intel | 5 | 8 | 6,000 | 1.6 | 0.9 |
| Qualcomm | 1.5 | 3 | 1,500 | 0.4 | 0.25 |
| Arm (Mali) | 1.5 | 3 | 1,500 | 0.4 | 0.25 |
| Unknown | 6 | 8 | 8,000 | 2 | 1.2 |
5.3 Gates
- 5 runs an hour per address, where an address is an HMAC-SHA256 of the IP, truncated to 24 hex characters.
- After launch, one free trial per address, scored and not paid.
- A paid run needs a pass: a signed message from a wallet holding at least $25 of $SILQ, valid 24 hours. The holding is read at issue, at run start (the lower value sets the tier) and at completion (below the minimum, the run is recorded unpaid).
- The tier caps concurrent runs per wallet: etch 1, stack 2, tape-out 4.
- The client records time spent hidden; the result flags runs hidden more than 2% of their length.
5.4 Inference checks
Open models use greedy decoding, so identical weights and prompts give identical tokens. After a miner answers, the server enqueues a replay with probability 1/4. The replay goes to a different worker of the same kind, and the original is marked verified when the two texts match character for character. Anyone can request a replay of a miner answer, 10 an hour per address. Node and frontier answers have no replay path.
5.5 Threats
| Attack | Defence today | Open |
|---|---|---|
| Replay a completion | One completion per run id. | Nothing known. |
| Finish before the length | Server-side time window (2). | Nothing inside the window. |
| Inflate the score | Ceiling per vendor family and instrument. | Any score up to the ceiling. |
| Claim a faster vendor | Pattern match on adapter strings. | The ceiling and split of the claimed vendor. |
| Farm free runs | One trial per address, hourly limit, pass for payment. | New addresses earn scores, never payouts. |
| Borrow a pass | Holding read at start and at completion. | A wallet that holds the minimum for the whole run. |
| Fake inference answers | One in four miner answers replayed. | Three in four miner answers, all node answers. |
| Settler key leak | Keep the vault near what the next cycles need. | The vault, up to its balance. |
6Rewards
R = (b + u × SCU) × m × g(3)
6.1 Upper bound per run
With s′ at the ceiling, a 60 minute run at tape-out (×1.5) and g = 1 earns at most the amounts in Table 7.
| Vendor family | SLQ-01 | SLQ-02 | SLQ-03 | SLQ-04 | SLQ-05 |
|---|---|---|---|---|---|
| NVIDIA | 4.36 | 5.40 | 4.87 | 4.74 | 4.87 |
| Apple | 2.24 | 5.40 | 2.23 | 2.43 | 2.50 |
| AMD | 3.30 | 4.74 | 3.68 | 3.75 | 3.68 |
| Intel | 1.18 | 2.76 | 0.91 | 1.18 | 1.19 |
| Qualcomm | 0.44 | 1.11 | 0.32 | 0.38 | 0.42 |
| Arm (Mali) | 0.44 | 1.11 | 0.32 | 0.38 | 0.42 |
| Unknown | 1.39 | 2.76 | 1.18 | 1.44 | 1.55 |
6.2 Governor
Let V be the dollar value of the vault at settlement and Oc the total owed in cycle c. The budget targets 1.2% of V per day.
B_c = V × 0.012 × 6 ÷ 24 r_c = min(1, B_c ÷ O_c) paid = owed × r_c g_next = max(0.1, r_c)(4)
Settlement pays each amount in the cycle scaled by rc. The value gnext is stored and applied to rewards recorded during the following cycle.
6.3 Per-token cap
cap_t = balance_t × price_t × 0.004 scale_t = min(1, cap_t ÷ P_t)(5)
6.4 Vouchers
For each wallet and token, the settler divides the scaled dollar amount by the token's settlement price and writes the result with 18 decimals. It signs the typed struct below, stores the voucher, and anchors keccak256 of the cycle report with closeCycle.
domain { name: "SiliqVault", version: "1", chainId: 4663, verifyingContract: vault }
Voucher (address wallet, uint64 cycle, address[] tokens, uint256[] amounts)7Vault
SiliqVault holds the payout tokens and pays vouchers. It has no imports, no proxy and no upgrade path. It is built with solc 0.8.28, optimizer on at 200 runs, EVM version shanghai, and deploys for about 1.3M gas.
- deposit
- Anyone deposits an ERC-20 with a memo. Deposited records the amount received. Tokens sent with a plain transfer are held without the event.
- closeCycle
- Callable by the settler. Anchors a report hash, once per cycle. The contract does not check vouchers against it.
- claim
- Checks a 65-byte settler signature with low s, that the voucher names msg.sender, at most 16 tokens, and one claim per wallet per cycle.
- setSettler
- Callable by the owner. Voids every unclaimed voucher signed by the old key.
- transferOwnership, acceptOwnership
- Owner handover in two steps.
- sweep
- Callable by the owner. Moves any token out of the vault.
Vault address: SiliqVault:launch soon
| Token | Company | Role | Address |
|---|---|---|---|
| NVDA | NVIDIA | design | 0xd0601CE157Db5bdC3162BbaC2a2C8aF5320D9EEC |
| TSM | TSMC | foundry | 0x58FfE4a942d3885bAa22D7520691F611EF09e7AA |
| SKHY | SK hynix | memory | 0x84CAb63bc87912E71ad199ff14A0bA45de68FeF8 |
| AAPL | Apple | design | 0xaF3D76f1834A1d425780943C99Ea8A608f8a93f9 |
| AMD | AMD | design | 0x86923f96303D656E4aa86D9d42D1e57ad2023fdC |
| INTC | Intel | design + manufacturing | 0xc72b96e0E48ecd4DC75E1e45396e26300BC39681 |
| QCOM | Qualcomm | design | 0x0f17206447090e464C277571124dD2688E48AEA9 |
| ASML | ASML | lithography | 0x47F93d52cBeC7C6D2CfC080e154002370a60dAEA |
| MU | Micron | memory | 0xfF080c8ce2E5feadaCa0Da81314Ae59D232d4afD |
| EWY | Samsung (via EWY) | memory | 0x7f0aBeF0C07280F82c6a08ead09dEd6BAE2C13Fc |
| SMH | Semiconductor ETF | packaging, tools, the rest | 0x072f979c2CAc8e1391B0162a87Fee094bF8744a0 |
The vault refills from deposits by anyone and from payments for API keys (from 0.001 ETH) and render jobs (from 0.002 ETH), which Siliq converts into stock tokens. Each deposit is a public event.
8Token
$SILQ gates paid runs and node registration. Rewards never pay in $SILQ. A wallet's holding is its balance times the price of the deepest $SILQ trading pair.
| Tier | Hold at least | Multiplier | GPUs at once |
|---|---|---|---|
| trial | nothing | not paid | 1 |
| etch | $25 | ×1 | 1 |
| stack | $250 | ×1.25 | 2 |
| tape-out | $2,500 | ×1.5 | 4 |
Supply, allocation and trading venue are not set in the code this paper describes. The contract address is not published yet: $SILQ:launch soon
9Roadmap and risks
9.1 Shipped by September 17, 2026
Five instruments with a WebGL2 fallback, lineage detection, signed run tokens with ceilings and limits, the live feed, leaderboard, GPU table and open dataset, the vault contract source, the settlement signer, the inference API with streaming and rechecks, frontier models on the caller's key, paid keys and render jobs (active at launch), the headless node client and wallet login. The roadmap keeps the live list.
9.2 Next
- $SILQ launch and vault deployment.
- Spot-checked kernels with server-issued seeds.
- Vault ownership to a multisig.
- Paying headless nodes, once node work has a verification path.
- Transcription and image endpoints, sponsor deposits by ticker, mobile GPU instruments.
9.3 Risks
- Contract
- SiliqVault is tested by our own tests alone and has no external audit.
- Keys
- The settler is a hot key, and one owner key controls the vault until a multisig takes over.
- Verification
- The open items in Table 6 let a modified client earn more than its work, up to the ceiling.
- Market
- Stock tokens follow listed equities and ETFs and can lose value after you claim them. Rewards convert at settlement quotes.
- Issuer and chain
- A third party issues the stock tokens on Robinhood Chain. Siliq controls neither the tokens nor the chain.
- Regulation
- Tokenized equities and $SILQ can be restricted where you live, and rules can change.
- Hardware
- Long runs heat the GPU and draw power. Electricity can cost more than a run earns.
- Availability
- Price feeds, RPC endpoints and hosting can fail and delay settlement.
Errataopen items, v1.0
- E1Ceilings are calibrated from a small set of measured cards and will change. The reference values in Table 3 come from one RTX 5060 Ti.
- E2Section 5: the vendor is read from strings the client sends. A modified client can claim a different vendor and inherit its ceiling and split.
- E3Section 6.2: rewards recorded during a cycle already carry g from the last settlement, and settlement scales them again by r when the cycle runs over budget. Under sustained load the two factors compound, and the floor of ×0.1 does not apply at settlement.
- E4Section 6.4: if a market quote is missing when a cycle settles, the share owed in that token is skipped for the cycle and not carried forward.
- E5Section 6.4: settlement prices are public market quotes cached for up to 5 minutes. The SKHY token tracks depositary shares while its reference quote is the Korea Exchange common share, so the operator can pin its settlement price.
- E6Section 7: the vault contract is tested by our own tests alone, has no external audit, and is not deployed.
- E7Section 8: before launch every run is a genesis run, scored and listed and never paid. Genesis rows stay in the open dataset with mode genesis.