> For the complete documentation index, see [llms.txt](https://igra-labs.gitbook.io/igralabs-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://igra-labs.gitbook.io/igralabs-docs/for-attesters/attester-faq.md).

# Attester FAQ

Common questions about attester economics, rewards, penalties, and operations.

***

### How often am I selected to attest?

Every active attester has a \~1/32 chance per block (\~2,700 attestations/day). Selection is **not stake-weighted** — a 400k IGRA attester is selected just as often as a 4M IGRA attester.

***

### How are rewards calculated?

Two reward streams, both proportional to your effective stake:

* **IGRA token rewards** — targeting \~15% APY, drawn from a protocol emission pool vested linearly over time
* **iKAS gas fee share** — proportional to your stake relative to the total staked pool

Rewards accumulate via your **Igra Attester Score (IAS)**. A new attester starts with a small IAS that grows with uptime — early rewards look thin but improve as your score matures.

**Timeliness bonus:** Attestations submitted in blocks 1–30 after the attested block earn a 120% bonus, decaying to 5% by block 512. Submitting promptly earns materially more.

***

### Does staking more earn more?

You are selected equally often regardless of stake. But each attestation **pays more** if you stake more — both IGRA and iKAS rewards scale with your effective stake. Higher stake = same frequency, higher per-attestation payout.

***

### What are gas refunds? Why don't they show as a balance?

After each successful attestation, the contract reimburses the Igra gas spent on that transaction. These are real iKAS transfers, but they offset what you just spent — they keep attest-gas cost near zero rather than accumulating as profit.

Gas refunds cover **Igra gas only**. The L1 KAS fee your kaswallet pays to post the wrapper transaction to Kaspa is a separate cost and is not refunded (but is negligible — \~0.00003 KAS per attestation).

In delegated mode, gas refunds land on the **operator** wallet, not the controller.

***

### What happens if my node goes offline?

Being offline is **not directly penalized**. A penalty only applies if:

1. You were **selected** for a specific block, AND
2. You **missed** that attestation, AND
3. A **challenger submits a proof** of the missed attestation (penalties are not automatic)

Even then, the penalty is small: **1/11,520 of your original stake**, rate-limited to once per \~45 minutes per attester. A short reboot (2–5 minutes) typically costs zero penalties — the attestor catches up after restart and re-attests blocks still within the valid window (\~8.5 minutes).

For longer planned outages, pause your attester cleanly.

***

### Can I be slashed for downtime?

No. **Slashing (1/16 of stake) only triggers for provable fraud** — signing an invalid block hash or double-signing the same window. Downtime, missed attestations, and reboots can never cause slashing.

***

### Is minimum stake (400k IGRA) worth it?

At minimum stake, margins are tight. You earn \~15% APY in IGRA (varies with uptime and timeliness) plus a stake-proportional iKAS share, against L1 KAS gas costs and server expenses. Economics improve as your IAS matures over weeks and scale with additional stake.

***

### I have 5 kaswallets but only wallet 0 is doing all the work

This means the attestor is submitting directly to one RPC provider worker (e.g. `http://rpc-provider-0:8535`) instead of the Traefik load balancer endpoint (`https://<your-domain>:8545`). Set `RPC_URL` in your attestor config to your Traefik endpoint and restart — this round-robins across all workers.

**Before changing routing**, verify the change address for each wallet:

> **Check `W1_WALLET_TO_ADDRESS` through `W4_WALLET_TO_ADDRESS` in `.env`.** The template ships the same placeholder address for all workers. If any wallet still has the placeholder, it will lose funds on its first transaction. Wallet 0 working correctly does not prove the others are configured — check each one.

Alternatively, if you only need attestation (no public RPC), run a single frontend worker and fund only wallet 0.

***

### How do I pause my attester?

Open the [Attester Dashboard](https://attester-dashboard.igralabs.com/) and click **Pause Attester**. While paused, you won't be selected for any blocks and can't be penalized for missed attestations. To resume, click **Resume** in the same dashboard.

Pause before any planned downtime (maintenance, migration, extended outage) to avoid unnecessary penalties.

***

### Where can I see my penalties and slashes?

Use the [Attester Dashboard](https://attester-dashboard.igralabs.com/) or query the attestation contract directly. See [How to Check Your Stake](/igralabs-docs/for-attesters/how-to-check-your-stake.md) for on-chain queries.

Penalties (missed attestations) and slashes (fraud) are tracked separately. A nonzero penalty total with zero slashes is normal — it means you missed some selected blocks, likely during restarts or before pausing.
