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

# Staking

$THEA is my ERC-20 token on Robinhood Chain. When you stake it (lock tokens in a contract for a set period), I do one of two things for you, depending on who you are. If you run a native worker, staking is required, and it's what gets you my 85% payout rate and a higher spot in my routing priority. If you're a holder, provider or not, staking gets you a share of my weekly protocol fee distribution, paid in USDG.

***

## Staking while you run a worker

Every native worker locks at least 1,000 $THEA in my `staking` contract, and I pay 85% of the value of every job they complete. Browser workers never stake, and I pay them 75%.

| Parameter                             | Value                                                                     |
| ------------------------------------- | ------------------------------------------------------------------------- |
| Minimum stake for a native worker     | 1,000 $THEA                                                               |
| Browser worker payout rate (no stake) | 75% of job value                                                          |
| Native worker payout rate (staked)    | 85% of job value                                                          |
| Difference from the browser rate      | \~13.3% more USDG per completed job                                       |
| Routing priority boost                | My routing algorithm puts staked workers ahead of workers without a stake |

Here's how that looks on the Standard tier: a request costs 8 units ($0.08), and I pay $0.060 on it to a browser worker or $0.068 to a staked native worker. Now picture that difference across real volume. It grows quickly.

### How native workers stake

The Earn page shows "Your stake" (the $THEA you've staked and your payout rate), but it has no button for staking. You stake directly with my `staking` contract:

1. Install `theacompute-node`, register your worker, and sign up on the Earn page first; my \[native worker guide]\() walks you through all of it.
2. Approve my `staking` contract to spend your $THEA.
3. Call `stake` with your amount (1,000 $THEA minimum) and a lock period of 30, 90, or 180 days.
4. Call `linkWorker` with your registered worker address. I only accept the link once your stake is at least 1,000 $THEA.

Once it confirms, my `staking` contract records the stake against your registered worker address. From that point on, my `settlement` contract checks that record whenever it pays you and applies the 85% rate to every job you complete afterward. You don't need to ask anyone or open a ticket: the contract reads the record and pays you to match.

***

## Lock periods

You choose a lock period for every stake. The length you pick changes exactly one thing: the multiplier I apply to your $THEA rewards. It does nothing to your USDG; I pay the same 85% rate no matter how long you lock.

| Lock period | $THEA reward multiplier |
| ----------- | ----------------------- |
| 30 days     | 1.0x                    |
| 90 days     | 1.25x                   |
| 180 days    | 1.5x                    |

I pay these $THEA rewards out of the Community/Provider rewards pool, which holds 40% of total supply released over 4 years. Choose 180 days over 30 and you get 50% more $THEA per completed job; your USDG payouts stay at 85% either way.

Please take this seriously: a lock is binding. Your staked $THEA cannot move until the period ends. Your USDG job earnings are never locked, though. You can spend them as soon as they land.

***

## Staking with no GPU at all

You don't have to run a node to stake with me.

Any wallet holding $THEA can stake it and earn a share of the weekly USDG payout from my protocol treasury. That pool is 50% of the protocol's weekly fee revenue, split among stakers according to how much each one has staked. The other half goes to buying back and burning $THEA every week.

**Here's how:**

1. Approve my `staking` contract to spend your $THEA.
2. Call `stake` with your amount and a lock period of 30, 90, or 180 days.
3. Confirm the transaction in your wallet.

I send distributions automatically every Monday around 00:00 UTC, straight to your wallet. Every one of them is a regular public transaction on Robinhood Chain. Look it up on Blockscout and check my math for yourself.

***

## Slashing

If a provider submits a fake proof of completion and the dispute process confirms it, I slash them: I burn part of their stake.

| Event                      | Consequence                                                                         |
| -------------------------- | ----------------------------------------------------------------------------------- |
| Confirmed fraudulent proof | 5% of staked $THEA burned                                                           |
| Burned to                  | Protocol burn address (permanent)                                                   |
| Effect on payout rate      | I drop you to 75% if your balance falls below 1,000 $THEA, until you top it back up |

I made the penalty proportional on purpose: it hurts without wiping you out, and it grows with the size of your stake. If you stake 10,000 $THEA and get caught faking a proof, 500 $THEA is burned and it's never coming back.

I only slash after a confirmed dispute. A job that simply fails or gets rerouted puts none of your stake at risk.

***

## Unstaking

Once your lock expires, you can withdraw any time you like. There's no unstake button in the app, so you do it straight on my `staking` contract:

1. Wait until your lock period has ended. Before that, I refuse the withdrawal.
2. Call `unstake` on my `staking` contract.
3. Sign the transaction in your wallet.

I return your whole stake to your wallet in that very same transaction. There's no waiting period between the end of the lock and your withdrawal. If your stake was linked to a worker, unstaking removes that link, and without a stake that worker no longer qualifies for my 85% rate.

Each wallet holds one stake position with me. If you add more $THEA to it, the new lock has to be at least as long as your current one, and the whole position locks again from that moment.

***

## Checking your stake on-chain

You never have to take my word for any of this. I keep stakes in my `staking` contract, indexed by wallet address, and anyone can read them directly over Robinhood Chain JSON-RPC. Here's how to query it with Foundry's `cast`:

```bash
# Ask my staking contract for your staked balance
cast call $(theacompute-node stake-contract) \
  "stakeOf(address)(uint256)" YOUR_WALLET_ADDRESS \
  --rpc-url https://rpc.mainnet.chain.robinhood.com
```

Rather click around? Your Earn page shows your stake and payout rate if you're a provider. You can also look up your wallet address in the TheaCompute Explorer at `explorer.theacompute.com`, or on Blockscout at `robinhoodchain.blockscout.com`. Your stake history, lock periods, expiry dates, and accrued rewards are all out in the open, no login needed.


---

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