> For the complete documentation index, see [llms.txt](https://docs.theacompute.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.theacompute.com/providers/browser-worker.md).

# Browser Worker

Lend me a Chrome tab and I'll turn it into a paid inference node. There's nothing to install: sign in, tell me about your rig on the Earn page, flip yourself online, and I start sending jobs to your GPU.

Inside that tab I run inference with the WebLLM runtime on WebGPU. Every prompt executes on your own hardware, right in the browser, and I stream the tokens back to whoever submitted the job.

***

## What I need from you

| Requirement   | Details                                                                                            |
| ------------- | -------------------------------------------------------------------------------------------------- |
| Browser       | Chrome 113 or newer, or any Chromium browser where WebGPU is switched on                           |
| GPU           | Any card your browser can reach through WebGPU, as long as the tab gets at least 3GB of GPU memory |
| Account       | A TheaCompute account: sign up with your email and a password                                      |
| Payout wallet | An Ethereum address where I send your USDG (MetaMask, Rabby, or Robinhood Wallet all work)         |
| Network       | A connection you can count on. How smoothly I stream depends on your upload bandwidth.             |
| Stake         | Nothing. I never ask browser workers to stake.                                                     |

**Is WebGPU on?** Go to `chrome://gpu` and look for "WebGPU" in the graphics feature status list. If it says "Hardware accelerated", you're good to go.

**Where I can't run yet:** Safari (its WebGPU support isn't finished), Firefox (most builds ship with WebGPU turned off), and any mobile browser. Worker mode needs desktop Chromium, full stop.

***

## Getting set up

**1. Sign in**

Make an account at `theacompute.com/app/signup` with your email and a password, click the confirmation link I email you, then sign in at `theacompute.com/app/login`.

**2. Open Earn and pick Browser worker**

Choose "Earn" in the navigation. You'll land on "Lend me your GPU", where I ask you to pick a tier. Choose **Browser worker**.

**3. Tell me about your rig**

Fill in the form:

* "Your rig's name": whatever you'd like me to call it
* "Your GPU (optional)": the card you're lending me
* "VRAM (GB)": how much GPU memory it has
* "Models I can send you": tick at least one model
* "Your payout wallet (Ethereum)": the address where I send your USDG

Only tick models that fit in your VRAM (the table below lists what each needs). Larger models earn you more per job, but the rest of your computer will feel slower while I'm running one.

| Model             | Tier     | VRAM required | Earnings per job |
| ----------------- | -------- | ------------- | ---------------- |
| Qwen3 1.7B (Q4)   | Lite     | 3GB           | $0.015           |
| Llama 3.2 3B (Q4) | Lite     | 4GB           | $0.015           |
| Qwen3 8B (Q4)     | Standard | 6GB           | $0.060           |
| Mistral 7B (Q4)   | Standard | 6GB           | $0.060           |

Click **"Sign me up"** and your rig is registered with me. You start out offline.

**4. Go live**

Flip the toggle that reads **"Offline · put me to work"** (or press **"Start taking jobs"**) and I load the model into browser memory. That takes anywhere from 15 seconds to 2 minutes, depending on the model's size and your connection. After the first load I keep the weights in browser storage, so starting up next time is quick.

With the model loaded, I register your worker with the orchestrator mesh and jobs start showing up by themselves. Your Earn page shows the jobs I sent you, what you've earned, your reputation, your uptime, and the models you serve. That's it, you're working with me now.

***

## What I do with each job

Every job I send to your tab moves through six steps:

1. My orchestrator hands over an encrypted payload through a WebSocket connection.
2. A Web Worker thread unlocks it using the ephemeral session key.
3. WebLLM runs the prompt on your GPU via the WebGPU API.
4. I stream tokens back to the orchestrator the moment the model generates them.
5. Once generation is done, your worker hashes the full output with SHA-256, signs that hash with the wallet key, and sends the proof to my `settlement` contract.
6. My settlement pays USDG into your payout wallet, usually confirmed in under a second. I cover the gas through ERC-4337, so you never have to hold ETH.

I keep inference on a Web Worker thread so the tab stays responsive and you can browse elsewhere while you earn. Just know that heavy GPU work in another tab will slow down how fast I can run your jobs.

***

## How I pay you

After every job you finish, USDG lands in the payout wallet you gave me, and each payment is its own settlement transaction you can look up. There's no minimum to withdraw and I don't batch payouts.

On the browser tier I pay you 75% of each job's value. You never have to stake to run a browser worker, but that also means the 85% rate isn't available here: I reserve it for `theacompute-node` operators with an active $THEA stake.

While we're in beta, I also give browser workers a 2x $THEA reward multiplier on top of their USDG. Those $THEA rewards come from the Community/Provider rewards pool and vest over 18 months.

***

## Taking a break

When you want to stop, click the toggle that reads **"Online · take a break"** and I stop sending you jobs. Closing the tab also stops me from running anything in it. If a job was in progress when you close it, it times out and I reroute it to someone else; I can't pay for the part you finished before closing.

You don't lose anything else. Your USDG balance and reputation are stored on the chain, not in your tab. Sign back in whenever you like and your whole history will be waiting for you.

***

## When something goes wrong

**WebGPU isn't available in your browser**

Switch on hardware acceleration at `chrome://settings/system`. If it's already on, update your GPU driver.

**The model won't load**

Your browser might be showing me less GPU memory than the model needs. Try a smaller model, or free up VRAM by closing tabs that play video, show 3D content, or run other WebGPU apps.

**I'm not sending you jobs**

A worker that just loaded can take up to 60 seconds to show up in my orchestrator mesh. Still quiet after a few minutes? Check your connection, then check that your Earn page shows you online (the toggle should read "Online · take a break").

**Your hourly earnings seem low**

Lite-tier models earn less per job than the bigger models I hand to native workers. That's the tier talking, not you. If you have an NVIDIA card or an Apple Silicon machine, my \[native worker tier]\(

) earns a lot more per hour.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.theacompute.com/providers/browser-worker.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
