Docs
The whole system on one sheet: how a run is measured, how it gets paid, what the vault holds, what the server checks and what it cannot check yet, and how to call the API.
01What Siliq is
Siliq pays GPU owners for verified work in the tokenized stock of the companies that made the chip. Your browser tab runs a workload on the GPU for 15, 30 or 60 minutes. The server checks the run and records what it earned. Every 6 hours Siliq signs a voucher for each wallet, and you claim the tokens from a public vault on Robinhood Chain.
The payout follows the silicon. An NVIDIA card pays in NVDA, TSM, SKHY, SMH: the designer, the foundry, the memory maker and a semiconductor ETF for the packaging and tool makers. Other vendors get their own split.
The same GPUs answer prompts. Small open models run in miners' tabs and on headless nodes behind one OpenAI-compatible endpoint. Paid API keys and render jobs are bought with ETH, and Siliq turns that ETH into stock tokens for the vault.
This page reads its figures from the constants the server runs on. When a rate or a limit changes in the code, the number here changes in the same deploy.
02Mining
Open /mine, pick an instrument and a run length, and start. The tab holds the GPU at full load for the whole run and reports a sustained score at the end. Nothing installs.
Siliq receives the adapter strings your browser exposes, the score, and how long the tab spent hidden. Your IP address is kept as a salted hash and your country as a two-letter code.
Instruments
| Part | Workload | Scored in | 1 SCU | WebGL2 |
|---|---|---|---|---|
| SLQ-01 compute | chained fused multiply-add over a million vec4 lanesEach pass feeds the next, so the GPU cannot skip ahead. Scored in teraflops per second of sustained work. | TFteraflops per second | 28 teraflops | yes |
| SLQ-02 memory | streaming upload, GPU copy and strided readback through 256 MBMeasures how fast bytes move between the tab and the card. Scored in gigabytes per second. | GB/Sgigabytes per second | 18 GB moved | no |
| SLQ-03 render | path tracer, 4 bounces, seeded sphere field over a ground planeTraces real light paths and can render frames for paid render jobs while it runs. Scored in megapaths per second. | MP/Smegapaths per second | 45,000 megapaths | no |
| SLQ-04 matrix | tiled SGEMM with workgroup memory, 1024 x 1024The dense matrix multiply behind every neural network layer. Scored in teraflops per second. | TFteraflops per second | 9 teraflops | no |
| SLQ-05 inference | transformer forward pass, 12 layers, 128 tokens, GPT-2 small shapeAttention and MLP blocks at full precision. While it runs, the tab can also answer queued prompts with real model weights. | TFteraflops per second | 5 teraflops | no |
Run rules
- Runs last 15, 30 or 60 minutes.
- The server issues a signed run token when the run starts. The run completes once, no sooner than its length minus 20 seconds and no later than 15 minutes after its length.
- One address gets 5 runs an hour. Siliq counts addresses by a salted hash of the IP.
- SLQ-01 runs on WebGL2 when WebGPU is missing. The other instruments need WebGPU.
- The result screen flags a run when the tab spent more than 2% of it hidden. Browsers throttle background tabs, and a throttled GPU scores lower.
- A score above the ceiling for your vendor family is cut to the ceiling before anything is recorded.
Ceilings
A ceiling is the highest sustained score Siliq accepts from one vendor family on one instrument. The values come from runs measured on an RTX 5060 Ti (6.3 TF, 4.1 GB/S, 10,100 MP/S, 2.05 TF, 1.1 TF), with headroom for the fastest card in each family.
| Vendor family | SLQ-01 TF | SLQ-02 GB/S | SLQ-03 MP/S | SLQ-04 TF | SLQ-05 TF |
|---|---|---|---|---|---|
| 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 |
Trial runs and passes
Whether a run pays depends on the launch and on your wallet.
| Mode | When | Result |
|---|---|---|
| genesis | Before $SILQ launches. Every run today is a genesis run. | Scored and listed, not paid |
| trial | After launch, without a pass. One per address. | Scored and listed, not paid |
| paid | After launch, with a pass from a wallet that holds at least $25 of $SILQ. | Paid at the next settlement |
A pass is a signed message. It sends no transaction, lasts 24 hours and sits in an HttpOnly cookie on this site. The message reads:
Siliq mining pass I hold $SILQ in this wallet and want a 24 hour pass. Signing sends no transaction. wallet: 0x<your wallet> nonce: <nonce>
- Your tier comes from the dollar value of your $SILQ when the pass is issued.
- When a run starts, Siliq reads your holding again and uses the lower of the two values. A smaller holding means a lower tier for that run.
- When a run finishes, Siliq reads it a third time. If the wallet holds less than $25, the run is recorded unpaid.
- Your tier sets how many GPUs one wallet can mine on at once: 1, 2, 4 from the lowest tier up.
03Getting paid
A paid run earns a dollar amount when it completes. At the next settlement Siliq converts that amount into stock tokens and signs it into your voucher.
reward = ($0.08 + SCU × $0.0011) × tier multiplier × governor(1)
SCU = sustained score × run length in seconds ÷ work per SCU(2)
Siliq compute units
Work per SCU is weighted so a minute on one card earns about the same on every instrument. On the reference RTX 5060 Ti, a 15 minute run comes to about 200 SCU on each of the five.
| Instrument | 1 SCU equals | RTX 5060 Ti, 15 min |
|---|---|---|
| SLQ-01 compute | 28 teraflops | 203 SCU |
| SLQ-02 memory | 18 GB moved | 205 SCU |
| SLQ-03 render | 45,000 megapaths | 202 SCU |
| SLQ-04 matrix | 9 teraflops | 205 SCU |
| SLQ-05 inference | 5 teraflops | 198 SCU |
SCU = 6.3 × 900 ÷ 28 = 202.5 reward = ($0.08 + 202.5 × $0.0011) × 1 × 1 = $0.30
Lineage split
The server picks the split from the vendor it reads in your adapter strings. The browser cannot send a split. A card the server cannot place gets the unknown split.
| Vendor | Slice 1 | Slice 2 | Slice 3 | Slice 4 |
|---|---|---|---|---|
| NVIDIA | NVDA 50%design | TSM 30%foundry | SKHY 13%memory | SMH 7%packaging + tools |
| Apple | AAPL 48%design | TSM 32%foundry | SKHY 10%memory | SMH 10%packaging + tools |
| AMD | AMD 47%design | TSM 31%foundry | EWY 12%memory | SMH 10%packaging + tools |
| Intel | INTC 55%design + manufacturing | TSM 25%foundry | EWY 10%memory | SMH 10%packaging + tools |
| Qualcomm | QCOM 50%design | TSM 30%foundry | EWY 10%memory | SMH 10%packaging + tools |
| Arm (Mali) | TSM 40%foundry | ASML 25%lithography | MU 25%memory | SMH 10%the rest |
| Unknown | TSM 45%foundry | ASML 25%lithography | MU 20%memory | SMH 10%the rest |
Arm Mali GPUs and unknown adapters carry no designer slice; their reward goes to the foundry, lithography, memory and the ETF. Samsung has no stock token on Robinhood Chain, so its slice is paid in EWY, a South Korea ETF. SMH, a semiconductor ETF, stands in for packaging, tools and the rest of the chain.
Cycles and vouchers
- 01Cycles last 6 hours and close at 00:00, 06:00, 12:00, 18:00 UTC. Every paid run adds its reward to your wallet's ledger for the open cycle, split by lineage.
- 02Five minutes after a cycle closes, the settler prices each token at market quotes and turns the dollars owed into token amounts, 18 decimals each.
- 03It signs one EIP-712 voucher per wallet and writes the hash of the cycle report on chain with
closeCycle. - 04You call
claim(cycle, tokens, amounts, signature)on the vault from the wallet the voucher names, and pay the gas. A voucher holds up to 16 tokens, and a wallet claims each cycle once. - 05A claim does not wait for closeCycle, so a failed anchor transaction cannot block payouts.
domain { name: "SiliqVault", version: "1", chainId: 4663, verifyingContract: <vault> }
Voucher (address wallet, uint64 cycle, address[] tokens, uint256[] amounts)Governor and caps
The vault pays out of what it holds. Two rules keep a busy cycle from draining it.
- Governor. Siliq aims to pay 1.2% of the vault's dollar value per day, which is 0.3% per cycle. When a cycle owes more than that budget, every amount in the cycle shrinks by the same factor. The rate recorded on new runs has a floor of ×0.1. Settlement has no floor: it never pays past the budget, so a cycle far over budget pays below ×0.1.
- Per-token cap. No cycle pays more than 0.4% of the vault's balance of any one token. When a token runs over, payouts in that token shrink and the other tokens stay whole.
budget per cycle = vault value × 0.012 × 6 ÷ 24 rate = min(1, budget ÷ total owed in the cycle) cap per token = token balance × price × 0.004(3)
04The vault
SiliqVault is a contract on Robinhood Chain that holds stock tokens and pays vouchers out of them. It has no imports, no proxy and no upgrade path.
- deposit(token, amount, memo)
- Anyone deposits an ERC-20 with a memo. The Deposited event records the amount the vault received.
- closeCycle(cycle, reportHash)
- The settler anchors the hash of a cycle report, once per cycle. The contract keeps it as a public record.
- claim(cycle, tokens, amounts, signature)
- A wallet redeems its voucher. The contract checks the settler signature, that the voucher names the caller, and that the cycle is unclaimed.
- setSettler, transferOwnership, acceptOwnership, sweep
- Owner functions. Ownership moves in two steps. Rotating the settler voids every unclaimed voucher signed by the old key.
Vault address:launch soon
Payout tokens
The vault pays in 11 Robinhood stock tokens on Robinhood Chain, each an ERC-20 with 18 decimals. Links open the token on the explorer.
| Token | Company | Role | Contract |
|---|---|---|---|
| NVDA | NVIDIA | design | 0xd060…9EEC |
| TSM | TSMC | foundry | 0x58Ff…e7AA |
| SKHY | SK hynix | memory | 0x84CA…FeF8 |
| AAPL | Apple | design | 0xaF3D…93f9 |
| AMD | AMD | design | 0x8692…3fdC |
| INTC | Intel | design + manufacturing | 0xc72b…9681 |
| QCOM | Qualcomm | design | 0x0f17…AEA9 |
| ASML | ASML | lithography | 0x47F9…dAEA |
| MU | Micron | memory | 0xfF08…4afD |
| EWY | Samsung (via EWY) | memory | 0x7f0a…13Fc |
| SMH | Semiconductor ETF | packaging, tools, the rest | 0x072f…44a0 |
- Samsung has no stock token on Robinhood Chain, so its slice is paid in EWY, a South Korea ETF.
- The SKHY token tracks SK hynix depositary shares. Siliq's reference quote is the Korea Exchange common share in dollars, and the operator can pin a settlement price when the two do not match one to one.
- Before launch there is no vault to read. After launch, /vault shows its balances read from the chain.
05$SILQ
$SILQ decides whether a run gets paid. Hold at least $25 of it in the wallet you mine with, sign a pass, and your runs earn. Hold more to mine on more GPUs with a higher multiplier. Rewards arrive as stock tokens from the vault; Siliq never pays in $SILQ.
| 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 |
- Siliq values your holding at the price of the deepest $SILQ trading pair.
- After launch, a headless node needs the same $25 minimum to register.
- No $SILQ contract exists yet. An address posted before launch belongs to someone else. Siliq posts the real one on this site and on X at @siliq.
$SILQ contract:launch soon
06What is verified, and what is not yet
The server and the vault contract enforce the first list. The second list is open, and you should weigh it before you mine, hold $SILQ or build on the API.
Checked today
- Every run starts with a run token signed by the server and completes once, inside its time window.
- Scores are capped per vendor family and instrument.
- Each address gets 5 runs an hour and, after launch, one free trial.
- The pass signature is checked, and the holding is read at the pass, at run start and at run finish.
- The server chooses the payout split. The client cannot send one.
- Each cycle pays within a budget tied to the vault's value, with a separate cap per token.
- Vouchers are EIP-712 signatures. The vault checks the signer, the wallet and one claim per cycle.
- One in four miner answers is replayed on a second GPU and compared character for character.
- Key and render purchases need a payment on chain to the pay-to address and a signature from the sender. Each transaction pays once.
Not verified yet
- A modified client can report any score up to the ceiling for its vendor. Spot-checked kernels with server-issued seeds are the fix, and they are on the roadmap.
- The vendor comes from strings the browser reports. A modified client can claim another vendor, which moves both its ceiling and its split.
- Work served by headless nodes is not paid and not cross-checked.
- The settler is a hot key on the server. It can sign a voucher for any amount of any token the vault holds. Until ownership moves to a multisig, one owner key can sweep the vault.
- The cycle budget and the per-token caps are server policy. The contract enforces neither, and it has no pause.
- The vault contract has been tested by our own tests and by nobody else.
- Settlement prices come from public market quotes cached for 5 minutes. There is no on-chain oracle.
- Before launch, runs are scored and listed, and nothing is paid.
- Turning key and render payments into vault deposits is an operator step. Each deposit shows as a public Deposited event; no contract forces it.
The roadmap lists the fixes in order, and the open dataset marks every run with its mode.
07The API
One base URL in OpenAI request and response shapes. Miners' tabs and headless nodes answer the open models. Frontier models are answered by their maker, on your own key. Every answer says who wrote it.
$SILIQ/api/v1
In every sample on this page, $SILIQ stands for the origin of this site: the scheme and host in your address bar, without a path. Set it once with export SILIQ=https://<this host>. CORS is open on every /api/v1 route, so a web page can call them.
Authentication
| Send | For | What you get |
|---|---|---|
| no header | Open models, free tier | 24 prompts an hour per address, answers up to 256 tokens. |
| authorization: Bearer silq_...or x-api-key: silq_... | Open models, Siliq key | No hourly limit, answers up to 512 tokens. Each prompt spends credits. |
| x-provider-key: sk-...or x-anthropic-key, x-deepseek-key,or authorization: Bearer sk-... | Frontier models | 60 prompts an hour per address. Siliq uses the key for that one call, stores nothing and adds no markup. The provider bills you. Siliq holds no provider key of its own. |
Endpoints
| Method | Path | What it does |
|---|---|---|
| POST | /api/v1/chat/completions | Chat completions in OpenAI shape. Multi-turn, optional streaming. Start here. |
| POST | /api/v1/inference | One prompt in, one answer out. Body: prompt, model, system, max_tokens, wait. Waits 25 s, then returns 202 with a poll URL; "wait": false returns 202 at once. |
| GET | /api/v1/inference/{id} | A job's status, and its answer once a GPU has written it. Jobs expire after 24 hours. |
| POST | /api/v1/inference/{id}/verify | Replays a miner-served answer on a second GPU. 10 an hour per address. |
| GET | /api/v1/models | Every model in OpenAI list shape, with a siliq block: name, params, served_by, credits, serving, size_gb. |
| GET | /api/v1/keys | Key price: pay-to address, minimum ETH, ETH price, credits per dollar and the message to sign. |
| POST | /api/v1/keys | Buys a key with a transaction hash and a signature. Returns the key once. |
| GET | /api/v1/keys/me | Credits left on the key in the authorization header. |
First call
curl -X POST $SILIQ/api/v1/chat/completions \
-H 'content-type: application/json' \
-d '{"model": "smol-360m",
"messages": [{"role": "user", "content": "What does a foundry do?"}]}'{
"id": "chatcmpl-...",
"object": "chat.completion",
"model": "smol-360m",
"choices": [{ "index": 0,
"message": { "role": "assistant", "content": "..." },
"finish_reason": "stop" }],
"usage": { "prompt_tokens": <int>, "completion_tokens": <int>, "total_tokens": <int> },
"siliq": { "served": "miner", "gpu": "...", "tokens": <int>, "ms": <int>,
"prefillMs": <int>, "job": "...", "poll": "/api/v1/inference/...",
"verified": null }
}The siliq block is the part OpenAI does not send. The model field names the model that wrote the answer, so an alias resolves to its real id.
- served
- miner or node for open models; anthropic or deepseek for frontier models, which add servedBy with the provider's model name.
- gpu
- Device label of the GPU that wrote the answer.
- tokens, ms
- Tokens written and total time on the GPU in milliseconds.
- prefillMs
- Time the GPU spent reading the prompt.
- job, poll
- The queue job and the URL that returns it for 24 hours.
- verified
- null until a recheck runs, then true when a second GPU wrote the same text, false when it did not.
curl -X POST $SILIQ/api/v1/chat/completions \
-H 'content-type: application/json' \
-H 'x-provider-key: sk-...' \
-d '{"model": "claude-opus-5", "stream": true,
"messages": [{"role": "user", "content": "Explain EIP-712 in two lines."}]}'Streaming
Send "stream": true and the answer arrives as server-sent events in OpenAI chunk shape, ending with data: [DONE].
- Open models stream what the worker has decoded so far. Workers post partial text about once a second.
- While a prompt waits, a comment line arrives every 5 seconds:
: waiting for a gpu, then: decodingonce a GPU holds it. - The last chunk carries
usageand thesiliqblock. If the finished answer differs from the streamed partial, that chunk carries the full answer with"replace": true. - Frontier models stream token by token from the provider.
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
: waiting for a gpu
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"A foundry"},"finish_reason":null}]}
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{...},"siliq":{...}}
data: [DONE]Timeouts and the queue
chat/completionswaits 45 seconds for a GPU. After that it answers 504 withtimeout_queuedortimeout_running, the job id and a poll URL. The prompt stays in the queue.inferencewaits 25 seconds, then answers 202 with the job. PollGET /api/v1/inference/{id}.- A model with no GPU online still takes prompts; they wait in its queue, up to 200. A full queue answers 503
queue_full.
Models
| id | Model | Params | Served by | Credits per prompt |
|---|---|---|---|---|
| smol-135m | SmolLM2-135M-Instruct | 135M | miner tab0.12 GB weights | 1 |
| smol-360m | SmolLM2-360M-Instruct | 362M | miner tab0.27 GB weights | 2 |
| smol-1.7b | SmolLM2-1.7B-Instruct | 1.7B | miner tab1.1 GB weights | 8 |
| r1-qwen-1.5b | DeepSeek-R1-Distill-Qwen-1.5B | 1.8B | miner tab1.3 GB weights | 8 |
| qwen3-8b | Qwen3-8B | 8.0B | headless node5.2 GB weights | 6 |
| claude-opus-5 | Claude Opus 5 | closed | anthropic | your key |
| claude-sonnet-5 | Claude Sonnet 5 | closed | anthropic | your key |
| deepseek-chat | DeepSeek Chat | open, too large for a tab | deepseek | your key |
| deepseek-reasoner | DeepSeek Reasoner | open, too large for a tab | deepseek | your key |
Leaving model out picks smol-360m. Siliq also accepts the names smollm2-135m, smollm2-360m, smollm2-1.7b, deepseek-r1-distill-qwen-1.5b, qwen3, opus and sonnet. GET /api/v1/models reports how many workers serve each open model right now.
Limits
| Limit | Value |
|---|---|
| Free tier, open models | 24 prompts an hour per address |
| Answer length, free tier | 256 tokens |
| Answer length, Siliq key | 512 tokens |
| Answer length, frontier | 4,096 tokens by default, up to 16,000 |
| Prompt length, open models | 2,000 characters |
| Prompt length, frontier | 20,000 characters |
| Frontier prompts | 60 an hour per address |
| Conversation kept | last 40 messages |
| Queue | 200 prompts per model |
| Wait, chat/completions | 45 s |
| Wait, inference | 25 s |
| Rechecks | 10 an hour per address |
Parameters Siliq ignores
chat/completions reads model, messages, stream, max_tokens and max_completion_tokens. It drops every other field without an error, including temperature, top_p, stop, n, seed, tools, tool_choice and response_format. Tool calls and JSON mode do not exist. messages must end with a user turn, and content can be a string or an array of text parts.
Errors
Errors come back as {"error": {"code": "...", "message": "..."}} with a string code you can branch on.
| Status | Code | Meaning |
|---|---|---|
| 400 | bad_json, bad_request, bad_messages | The body is not JSON, a field is missing, or messages does not end with a user turn. |
| 401 | bad_key, provider_key_required | The Siliq key is unknown, or a frontier model was called without a provider key. |
| 402 | out_of_credits | The key has fewer credits than the model costs. |
| 404 | model_not_found, job_not_found | No such model, or the job expired after 24 hours. |
| 413 | prompt_too_long | The prompt is over the character limit for its model tier. |
| 429 | rate_limited | Hourly limit reached. The retry-after header gives the seconds left. |
| 503 | queue_full, prelaunch | The model queue is full, or a payment endpoint was called before launch. |
| 504 | timeout_queued, timeout_running | No GPU finished in time. The body carries the job id and a poll URL. |
Buying a key
A Siliq key lifts the hourly limit and the answer length on open models. Frontier models run on your provider key and need no Siliq key.
- 01
GET /api/v1/keys. It returns the pay-to address, the minimum, the ETH price and how many credits a dollar buys.Pay-to address:launch soon - 02Send at least 0.001 ETH on Robinhood Chain to the pay-to address.
- 03Sign the payment message below with the wallet that sent the ETH. The signature proves the payment is yours, so a stranger who sees the transaction cannot claim it first.
- 04
POST /api/v1/keyswith{"txHash": "0x...", "signature": "0x..."}. Siliq checks both on chain and returns the key once. It stores a hash of the key and cannot show it again. - 05Send the key as
authorization: Bearer silq_...on every call.GET /api/v1/keys/meshows the credits left.
Siliq payment I sent this transaction and want to use it on Siliq. 0x<your transaction hash>
Credits equal the ETH sent × the ETH price in dollars × 1,000. A prompt costs 1 to 8 credits depending on the model. One transaction pays for one key or one render job. Before launch the pay-to address does not exist and POST /api/v1/keys answers 503 prelaunch.
Greedy decoding and rechecks
Open models use greedy decoding, with no temperature and no sampling. The same prompt on the same weights gives the same tokens, so a second GPU can check the first.
- Siliq replays one in four miner answers on a second miner GPU, never the one that wrote the original, and marks the original verified when the two texts match character for character.
- You can ask for a recheck of any finished miner answer. Poll the job afterwards for
verifiedandverifiedBy. - Tabs and nodes load different weight files, so a recheck comes from the same kind of worker. Node and frontier answers are not cross-checked.
- A match shows two GPUs agree. It says nothing about whether the answer is correct.
curl -X POST $SILIQ/api/v1/inference/<job>/verify curl $SILIQ/api/v1/inference/<job> # "verified": true | false, "verifiedBy": "<gpu>"
08Render jobs
SLQ-03 is a path tracer. A render job buys frames of a seeded scene from the miners running it. Render jobs open at launch, with the pay-to address.
- 01Send at least 0.002 ETH on Robinhood Chain to the pay-to address.
- 02Sign the same payment message as for a key, with the wallet that sent the ETH.
- 03Post the transaction hash, the signature and a scene seed on /jobs, or to
POST /api/jobswith an optional title of up to 48 characters. - 04Miners on SLQ-03 take the oldest open job. Each GPU delivers one frame every 15 seconds, as WebP or JPEG under 180 KB.
- 05The job closes when the paid frames have arrived. The board keeps the latest 24.
GET /api/jobs/{id}returns the job and its frames.
| Rule | Value |
|---|---|
| Minimum payment | 0.002 ETH |
| Frames per ETH | 5,000 |
| Frames at the minimum | 10 |
| Frame interval per GPU | 15 s |
| Frames on the board | 24 |
09Headless nodes
A browser tab holds a small model. A machine with more memory can serve bigger ones from its own Ollama through silq-node.mjs. The client reads your key from a file so it stays out of shell history, signs one login message, and talks to Siliq and Ollama and nothing else.
curl -O $SILIQ/silq-node.mjs curl -O $SILIQ/silq-node.sha256 sha256sum -c silq-node.sha256 # macOS: shasum -a 256 -c silq-node.sha256 npm i viem ollama pull qwen3:8b PRIVATE_KEY_FILE=~/.siliq/key node silq-node.mjs --models=qwen3-8b --base=$SILIQ
| Flag | Meaning |
|---|---|
| --models | Required. Comma-separated Siliq model ids. |
| --base | The Siliq origin, $SILIQ. |
| --ollama | Ollama server. Default http://127.0.0.1:11434. |
| --gpu | Label shown next to served answers. |
| Siliq id | Ollama tag |
|---|---|
| qwen3-8b | qwen3:8b |
| smol-135m | smollm2:135m |
| smol-360m | smollm2:360m |
| smol-1.7b | smollm2:1.7b |
| r1-qwen-1.5b | deepseek-r1:1.5b |
The key file holds one 0x-prefixed private key. Use a wallet made for the node, and on macOS or Linux run chmod 600 on the file. To register, the node asks the server for a nonce and signs this message. The client refuses to sign any other text.
Siliq node Register a headless node for this wallet. Signing sends no transaction. wallet: 0x<node wallet> nonce: <nonce>
- The node token lasts 7 days, and the client renews it before it expires.
- After launch the node wallet must hold $25 of $SILQ.
- The client refuses Ollama cloud models. Every answer comes from weights on your machine.
- A node pulls prompts from
POST /api/v1/inference/pulland posts partial text about once a second toPOST /api/v1/inference/{id}/result. A job lease lasts 90 seconds; a node that goes quiet hands the prompt back to the queue.
10The open dataset
Every verified run in one file, as CSV or JSON lines. The file carries no wallets, no IP addresses, no run tokens and no dollar amounts. Responses are cached for 10 minutes, and CORS is open.
curl "$SILIQ/api/dataset?format=csv" # CSV with a header row curl "$SILIQ/api/dataset?format=json" # JSON lines, one run per line
| Column | Meaning |
|---|---|
| id | Sequence number of the run. |
| at | When the run completed, ISO 8601 in UTC. |
| instrument | SLQ-01 to SLQ-05. |
| gpu | Device label derived from the adapter strings, such as RTX 5060 TI. |
| vendor | One of nvidia, apple, amd, intel, qualcomm, arm, unknown. |
| arch | GPU family, such as BLACKWELL or APPLE SILICON. |
| country | Two-letter country code from the hosting provider, XX when unknown. |
| api | webgpu or webgl2. |
| score | Sustained score after the ceiling, three decimals. |
| unit | TF, GB/S or MP/S. |
| scu | Siliq compute units, two decimals. |
| duration | Run length in minutes. |
| mode | paid, trial or genesis. |
| multiplier | Tier multiplier applied, 0 for unpaid runs. |
| tier | trial, etch, stack or tapeout. |
| cycle | Settlement cycle index: hours since 1970-01-01 UTC divided by 6, rounded down. |
| verified | 1 for every row: the run passed the server checks. |
Before launch every row has mode genesis. Filter on mode to keep them apart from paid runs later. Download it from /api/dataset.
11Glossary
- run
- One session of 15, 30 or 60 minutes in which your tab keeps the GPU busy with one instrument and reports a sustained score.
- instrument
- One of the 5 workloads, SLQ-01 to SLQ-05. Each measures one thing about the card in its own unit.
- sustained score
- The throughput a GPU holds across the whole run, after the ceiling.
- ceiling
- The highest score Siliq accepts from one vendor family on one instrument.
- SCU
- Siliq compute unit. 28 teraflops on SLQ-01, 18 GB moved on SLQ-02, 45,000 megapaths on SLQ-03, 9 teraflops on SLQ-04, 5 teraflops on SLQ-05.
- lineage
- Who designed the chip, who manufactured it, who made its memory. It decides which stock tokens a run pays in.
- genesis run
- A run before $SILQ launches. Scored and listed, not paid.
- trial
- One free run per address after launch. Scored and listed, not paid.
- pass
- A signed message, no transaction, from a wallet holding at least $25 of $SILQ. It lasts 24 hours.
- tier
- etch, stack, tape-out. Set by your holding; decides the multiplier and how many GPUs mine at once.
- cycle
- A 6 hour window. Runs add up inside it and settle together when it closes.
- voucher
- A settler signature listing the tokens and amounts a wallet earned in one cycle. You redeem it on chain.
- settler
- Siliq's signing key for vouchers. It lives on the server; treat it as a hot key.
- governor
- The rule that scales payouts toward 1.2% of the vault per day.
- vault
- SiliqVault, the contract on Robinhood Chain that holds the stock tokens and pays vouchers.
- node
- A machine running silq-node.mjs that serves open models from a local Ollama. Unpaid for now.
- $SILIQ
- In code samples, the origin of this site.