mPAKT Grid

A volunteer compute grid. Visitors' browsers contribute GPU and CPU time, and the whole pool is exposed as one virtual accelerator: load a model by name, submit graphs of operations, decode tokens on the server.

mPAKT Compute betaRun a website, a JavaScript or Python handler or a container from a GitHub repository on volunteers' devices. Nothing is stored. Sign inCreate and revoke API keys, change your password; the owner sends invitations and verifies accounts here. /llms.txtThe complete reference as plain text, for language models and scripts. API documentationAccounts, v3 models, sessions and graphs, v2, v1, Compute, chat. /api/opsEvery operation, its inputs, parameters and features, as JSON. Volunteer scriptOne script tag. No key and no account. DownloadsThe volunteer program: lend your own computer's CPU, GPU, TPU and NPU.

Getting access

Every compute call needs an API key, and keys belong to accounts. Accounts are by invitation: there is no public sign-up. Contact the owner of this grid, say who you are and what you want to run, and they will send you a temporary username and password (good for 7 days).

  1. Sign in at /account with the temporary username and password. The page asks you to choose a password of your own (and, if you like, a username). Or over the API:
    curl -X POST https://YOUR-HOST/api/auth/login -H "Content-Type: application/json"   -d '{"username":"guest-amber-x7k2","password":"tmp-amber-birch-…"}'
    # { "token": "mps_...", "setupRequired": true }
    
    curl -X POST https://YOUR-HOST/api/auth/complete-setup -H "Authorization: Bearer mps_..."   -H "Content-Type: application/json" -d '{"newPassword":"a long password of your own"}'
    # { "token": "mps_...", ... }   your session for the next 7 days
  2. Create a key on /account — or over the API with that session token:
    curl -X POST https://YOUR-HOST/api/account/keys -H "Authorization: Bearer $TOKEN"   -H "Content-Type: application/json" -d '{"label":"laptop"}'
    # { "key": "mpakt_...", ... }   shown once
  3. Send the key as x-api-key on every compute call.

New accounts are unverified: they can use the AI API, the chat and Compute boxes, but downloading the volunteer program, giving a Compute box internet access, running containers, using your own domain and the chat's tools wait until the owner verifies the account.

Already have a key from before accounts? It still exists, on an account of its own, and works again once the owner approves that account. To sign in to that account, use Set up its account on /account (or POST /api/auth/claim) with the key and a new password.

A first call

curl https://YOUR-HOST/api/v3/status -H "x-api-key: mpakt_..."

curl -X POST https://YOUR-HOST/api/v3/graph -H "x-api-key: mpakt_..." -H "Content-Type: application/json" \
  -d '{"graph":{
        "inputs":[{"name":"x","shape":[2,3],"data":[1,2,3,4,5,6]},
                  {"name":"w","shape":[3,2],"data":[1,0,0,1,1,1]}],
        "steps":[{"op":"matmul","in":["x","w"],"out":"h"},
                 {"op":"gelu","in":["h"],"out":"y"}],
        "outputs":["y"]}}'

From there: load a model straight from Hugging Face, keep a KV cache in a session, and decode on the server so a whole generation is one request. Architectures maps HF config fields — rope scaling, sliding windows, softcapping, ALiBi, MoE — onto operation parameters.

mPAKT Compute beta

Point a box at a public GitHub repository — a static site, a JavaScript or Python handler, or a container — and the grid runs it on a volunteer's device whenever someone visits its address. You pay in credits (1,000 credits = US$1) for what runs; nothing is stored between requests. Containers run on installed volunteers with Docker, or in a browser's emulated 32-bit Linux. Boxes have no internet unless you turn it on, and then it goes through Tor. Volunteers can see the code and traffic of the boxes they run, so keep secrets out of them. Start at /compute; the API is in the documentation.

Clients

Volunteering

Anyone can add the volunteer script to any site, with no key and no account:
<script src="https://YOUR-HOST/client.js" async></script>
Visitors are shown a notice and can opt out. If you have an account, add your volunteer code (data-account="vc_...") and the work is credited to it. Details, and what runs on their device, are on the volunteer script page and the participation agreement.

To contribute your own computer instead, download the volunteer program (for verified users — sign in with a verified account). It uses every CPU, GPU, TPU and NPU it can find, up to the share of free capacity you set, and on Linux with Docker it can also run Compute boxes. Work done under your account's volunteer code earns Compute credits and, over time, a contributor tier with discounts and card-purchase bonuses.

For the owner

On first start the server creates the owner account, tnme, with no password, and writes a one-time setup code to data/owner-setup-code, readable only by the service user. Sign in at /account with just the username: the page asks for the code and a new password. The code is deleted once used. From a terminal:

npm run admin -- setup           # on the server; or POST {"code","password"} to /api/auth/setup
npm run admin -- invite "for alice"   # a temporary username and password to send her (shown once)
npm run admin -- verify alice    # may download the volunteer, give boxes internet, run containers, use chat tools
npm run admin -- credits alice 5000   # Compute credits
npm run admin -- accounts        # also: pending, approve, reject, disable, enable, delete

Invitations, verifying, approving, disabling and deleting accounts are also buttons on /account when signed in as the owner, and /api/admin endpoints; see Accounts. Disabling or deleting an account stops its keys immediately and releases every model, session and compiled graph it holds.

Machine-readable: /llms.txt · /api/ops · /api/versions · /api/health