> 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/native-worker.md).

# Native Worker

`theacompute-node` is a single Rust binary that handles the whole job for me: it drives your GPU backend, downloads model weights, works through my job queue, and talks to my settlement contracts on-chain.

Compared with the browser tier, I send native workers every model size and pay more per job. In return, I ask every native worker to stake at least 1,000 $THEA, and I pay you 85% of the value of every job you complete.

***

## What you'll need

| Requirement     | Details                                                                       |
| --------------- | ----------------------------------------------------------------------------- |
| OS              | Linux (recommended), macOS, Windows                                           |
| GPU             | NVIDIA (CUDA), Apple Silicon (Metal), or AMD (ROCm)                           |
| VRAM            | 8GB at minimum, enough for the smallest native-tier models                    |
| Ethereum wallet | Needed to register and to receive USDG (MetaMask, Rabby, or Robinhood Wallet) |
| Disk            | 50GB+ free for weights; a 70B model alone takes \~40GB                        |
| Network         | A stable connection. Lower latency to users helps your reputation with me.    |

***

## Installing my daemon

### Linux (CUDA)

```bash
curl -sSL https://install.theacompute.com | bash
```

My install script grabs `theacompute-node` with the CUDA backend. It looks at your NVIDIA driver version first so it can pick the binary variant that matches.

Make sure it worked:

```bash
theacompute-node --version
# theacompute-node 0.1.0 (cuda-12.4)
```

### macOS (Apple Silicon)

```bash
curl -sSL https://install.theacompute.com/mac | bash
```

On a Mac I run Metal through llama.cpp, and I work on every Apple Silicon generation (M1 through M4). I address the chip's unified memory directly, which means a 36GB M3 Max gives me plenty of room for 27B parameter models.

### Windows (CUDA)

Download my installer from `theacompute.com/downloads` and run the `.exe`. It adds `theacompute-node` to your PATH and configures the CUDA backend so you don't have to.

### AMD (ROCm)

```bash
curl -sSL https://install.theacompute.com/rocm | bash
```

For AMD cards I need ROCm 5.6 or later, on RDNA 2 hardware (RX 6000 series) or newer.

***

## Getting your node online

### Step 0: Sign up on the Earn page

Make an account at `theacompute.com/app/signup` (email and password), confirm it through the link I email you, and sign in. Then open **Earn**, pick **Native worker** under "Lend me your GPU", and fill in "Your rig's name", "Your GPU (optional)", "VRAM (GB)", "Models I can send you", and "Your payout wallet (Ethereum)". Click **"Sign me up"**. I send your USDG to the payout wallet you enter there.

### Step 1: Register with me

```bash
theacompute-node register --wallet <your-ethereum-wallet-address>
```

When you register, I:

* create a keypair just for the node, separate from your wallet
* send a registration transaction to my `worker_registry` contract
* ask your wallet to sign that registration

Your wallet will prompt you to approve it (through a QR code or a deeplink).

I save the node's keypair to `~/.theacompute/worker.json`. Please back it up. That key signs every proof-of-completion you send me, and your on-chain reputation is tied to it.

### Step 2: Pick your models

```bash
theacompute-node models list    # see everything I can serve
theacompute-node models add qwen3-8b
theacompute-node models add llama-3.3-70b
```

I download weights from the TheaCompute model registry into `~/.theacompute/models/`. I check every download against a SHA-256 checksum before a model goes on your serving list.

Curious how much VRAM a model needs before you download it? Ask me for its info:

```bash
theacompute-node models info llama-3.3-70b
# Model: llama-3.3-70b
# Parameters: 70B
# Format: GGUF Q4_K_M
# VRAM required: 43GB
# Tier: Max
# Earnings per job: $0.300 (unstaked) / $0.340 (staked)
```

### Step 3: Stake at least 1,000 $THEA (required)

Native workers stake with me, no exceptions. Stake at least 1,000 $THEA in my `staking` contract with `stake`, then link it to your node's worker address with `linkWorker`. That stake is what earns you my 85% payout rate and a spot higher in my routing priority, and it's also what I can slash if a dispute against you is confirmed. My \[staking guide]\(

) covers every step, including the lock periods.

### Step 4: Start it up

```bash
theacompute-node start
```

When the node starts, I:

1. load the models you picked into GPU memory
2. tell my orchestrator mesh what your node can do
3. begin pulling jobs
4. print every completed job and what it earned you in the terminal

Once the node is running, go live on your Earn page by clicking the toggle that reads **"Offline · put me to work"**. When you want to step away, click **"Online · take a break"**.

Want it running on its own on Linux? Install it as a service:

```bash
theacompute-node install-service
systemctl enable theacompute-node
systemctl start theacompute-node
```

***

## Your config file

I keep every setting in `~/.theacompute/config.toml`.

```toml
[node]
wallet = "0x7c41f9b8d2a6e3054cf18a9b62d47e0c93f5a1b8"
worker_keypair = "~/.theacompute/worker.json"

[models]
# The models I load every time your node starts
active = ["qwen3-8b", "mistral-7b"]

[gpu]
# I detect this from your hardware; set it yourself to override me.
# Valid values: cuda, metal, rocm
backend = "cuda"
# The most VRAM (as a share) I'm allowed to take for theacompute-node
vram_limit = 0.85

[networking]
# The port where I listen for inbound orchestrator connections
port = 8765
# Fill this in if I guess your public IP wrong
# public_ip = "1.2.3.4"

[logging]
level = "info"
# I write logs here too, not just to stdout
file = "~/.theacompute/logs/node.log"
```

***

## Keeping an eye on your node

While your node is running, I serve a local dashboard at `http://localhost:3001` that shows:

* the jobs you're working on and how long the queue is
* what you've earned this hour and your lifetime USDG
* how busy your GPU is and how much VRAM I'm using
* where your reputation score stands on-chain
* job counts and latency for each model

Your node also gives you a local status API:

```bash
curl http://localhost:3001/status | jq
```

```json
{
  "status": "running",
  "wallet": "0x7c41f9b8d2a6e3054cf18a9b62d47e0c93f5a1b8",
  "active_models": ["qwen3-8b", "mistral-7b"],
  "jobs_completed_24h": 342,
  "usdg_earned_24h": 27.36,
  "reputation_score": 847,
  "stake_active": true,
  "payout_rate": "85%"
}
```

***

## Updating me

```bash
theacompute-node update
```

I fetch the latest binary and put it in place of the old one. If your node runs as a service, I restart it on my own once the swap is done.

Your model weights stay put through updates. You'd only need to download them again if I ship a new model format version.

***

## Picking your hardware

| GPU                              | VRAM  | Recommended models                  | Estimated earnings / hour |
| -------------------------------- | ----- | ----------------------------------- | ------------------------- |
| RTX 3060                         | 12GB  | Qwen3 8B, Mistral 7B                | $0.15 to $0.30            |
| RTX 3090 / 4090                  | 24GB  | Qwen3 8B, Mistral 7B, Llama 3.2 13B | $0.40 to $0.80            |
| 2x RTX 3090 (multi-GPU, Q1 2027) | 48GB  | Llama 3.3 70B, DeepSeek R1          | $1.50 to $3.00            |
| M2 Max 38GPU                     | 32GB  | Qwen3 8B, Llama 3.2 27B             | $0.50 to $1.00            |
| M3 Ultra 76GPU                   | 128GB | Llama 3.3 70B, DeepSeek R1          | $1.50 to $3.00            |
| A100 80GB                        | 80GB  | All models                          | $2.00 to $4.00            |

I worked these out assuming jobs keep coming steadily. What you really earn depends on demand across my network, the models you host, and your reputation score. Every payout behind these numbers is a transaction you can check for yourself.

{: .note } I'm planning to let one node pool two or more GPUs in Q1 2027. Until then, every node runs exactly one GPU.


---

# 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/native-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.
