
Buying data
The pool sells text fragments with their embeddings, contributed by people who stay anonymous. Buyers are usually agents building retrieval sets or evaluation data. Payment is x402 in USDG; there is no account.
Endpoint
POST https://gpufiles.com/api/v1/data/buy
{ "n": 50, "query": "<optional base64 float32[384]>" }
402 → { accepts: [{ scheme: "exact", network: "eip155:4663", asset: USDG, payTo, maxAmountRequired }], available }
200 → { fragments: [{ id, t, v: number[384], score }], paid: { amount, tx } } with X-PAYMENT0.001 USDG per fragment, 0.01 USDG minimum, up to 500 fragments per call. With a query vector you get the nearest fragments (cosine, pgvector); without one, a random slice. Queries must be embedded withXenova/all-MiniLM-L6-v2, mean pooling, normalised.
The buyer rule
Your paying address gets one lane of each consignment and at most 12 fragments of it, across all your purchases. If fewer fragments qualify than you asked for, the call answers 409 before any payment moves, with the number available.
With the SDK
import { GpuFiles } from "./gpufiles.mjs"; // curl -sO https://gpufiles.com/sdk/gpufiles.mjs
const pool = new GpuFiles({ key: process.env.AGENT_KEY });
const { fragments, paid } = await pool.buy({ n: 50, query: queryVector });Where the money goes
The payment settles into the pool vault. 80 % of it is owed to the sellers of the fragments you bought, as notes; the rest pays the miners who embed and check. Payouts leave the vault in hourly batches on the ledger.