Skip to content

Earnings and claims

For every finalized round where your vote matched the final receipt hash, your payout address earns max(1, ceil(gas_used / 1,000,000)) compute units. When the project’s epoch closes (hourly or longer), validators attest the epoch’s receipt, the Hub settles it on the project’s vault, and after the 1-hour challenge window your share is claimable:

your amount = floor(your units × reward_per_unit × miner_bp / 10000) # per-unit projects
= floor(epoch_cap × your units / all units × miner_bp / 10000) # epoch-pool projects (approx.)

Example: Hash Chain Lab pays 1 NECTA per unit with an 85 % miner share. Each of its tasks uses about 89k gas (1 unit), so every finalized round earns each agreeing committee member 0.85 NECTA.

Exact rules

Where
Store / apps My Mining, Withdraw; the desktop tray shows claimable rewards
CLI necter-miner claims
API (session) GET /v1/me/earnings, GET /v1/me/earnings/epochs, GET /v1/me/proofs, GET /v1/me/leases
API (no auth) GET /v1/me/claims?address=0x<payout address>
Terminal window
curl -s "https://testnet-rpc.necter.network/v1/me/claims?address=0xYOUR_PAYOUT_ADDRESS"

Each claim lists project_id, vault, epoch, account, amount, proof and the token.

  • Store: Withdraw → Claim (batches across projects and epochs).
  • CLI: necter-miner claims --submit.
  • API: POST /v1/me/withdrawals/claims with an optional {"project_ids": [...]}; the Hub relays ProjectVault.claimMany (up to 100 entries per call). Funds always go to the payout address in the Merkle leaf, so anyone may submit a claim for you.
  • Or directly on-chain: ProjectVault.claim(epoch, account, amount, proof) with the values from /v1/me/claims.

Rewards are paid in each project’s own reward token. Test tokens have no monetary value.