Skip to content
ExperimentalTestnet: experimental, local onlyMainnet: Not availableSoftware: Core bad4a06ea · protocol pqwerai-v8-testnet/1Updated

AI provider quickstart

Experimental — not a public service

AI sharing is implemented and tested locally (single operator). There is no public provider network, no independent provider cohort and no public model gateway. Usage receipts are provider-signed claims, not proof of GPU work. Nothing on this page earns block rewards.

Boundaries

flowchart LR
  U[Application / wallet] -- OpenAI-compatible HTTP on loopback --> M[MeshLLM runtime<br/>separate process]
  M -- signed usage record --> P[Provider agent]
  P -- propose usage --> E[(ServiceEscrow<br/>on chain)]
  U -- fund / accept / dispute --> E
  N[PQWERAI node<br/>consensus + EVM] --- E
  M -. never inside .- N
  • AI never runs inside consensus. A stopped or compromised MeshLLM cannot stop nodes from validating blocks.
  • Prompts and responses never go on chain; only quote hashes, receipt commitments and amounts do.
  • Inference only: paid training, training grants and training rewards are out of scope for testnet-rc1.

1. Run MeshLLM locally

The project pins upstream MeshLLM (0.78.x) and a GGUF model by SHA-256; the supervisor verifies publisher/product/ native-file hashes before starting it with --local-model-only, isolates its data directory and disables analytics, default plugins and prompt disk caching. There is no downloader: install the pinned files yourself.

Wallets and clients reach the runtime only on literal loopback: http://127.0.0.1:<port>/v1 (OpenAI-compatible).

2. Opt in with a provider policy

The Windows Wallet's AI Sharing page (Advanced mode) writes the same policy the runtime client uses:

Setting Meaning
Inference / hosting consent Nothing is served until you opt in
GPU, CPU, power, temperature, bandwidth limits Admission checks before each job (not physical limits)
Hours (UTC) When the node accepts work
Minimum price Lowest pricePerToken you will quote
Payout address Settlement address (separate from mining and validator keys)

"Ask the model" sends a local test request and shows an unverified, not payable usage observation.

3. Usage records and settlement

  1. The provider signs a quote (job id, payer, provider, model id, max tokens, price per token, expiry, service window) bound to chain ID 77240 and the escrow address.
  2. The payer funds the job in ServiceEscrow with exactly maxTokens × pricePerToken.
  3. After serving, the provider proposes usage with a receipt commitment (hash of its signed usage record).
  4. The payer accepts or disputes; a trusted arbiter resolves disputes; unaccepted jobs refund after the window.
  5. Funds are paid by pull withdrawal. Revenue policy v3: the provider receives the remainder after deployment-configured payees; the testnet default has no payees, so the provider receives 100 %.

The full flow is executable in Build an AI payment application.

Limits you must design for

  • Finality: an escrow allocation in a non-finalized block can be reorganised away. Deliver irreversible goods only after the settlement block is BFT-finalized.
  • Arbiter and payer acceptance are trust assumptions; signed usage authenticates the provider's report, not its truth.
  • Multi-operator routing, accountable hardware measurement and model-poisoning evaluation remain open work (known gaps).

Found a problem? Report a documentation issue · Build testnet-rc1+72057fe3ec