# What this website is

The chat on this website is a **basic inference trial and a showcase** for the Ember public testnet. It is **not an agent**: it cannot browse the web, call tools, remember anything between conversations, or carry out tasks. Every message you send is one plain inference request, answered by a model running on an independent node of the network — nothing more, and the page shows you the on-chain trace of exactly that.

Real usage of the network does not go through this page. It goes through the API, the MCP tools, or your own gateway or node — see https://emberinfer.org/agents.

## Your address, not an account

There is no username or password. When you open the chat page (https://emberinfer.org/chat), your browser generates an Ed25519 key on your device; your address is the SHA-256 of the public key. The private key stays in your browser's local storage — it is never uploaded. You can export the seed from the Keys panel and import it elsewhere to reuse the same address. A public faucet issues small amounts of test Spark to new addresses (rate-limited per address and per source).

## How website credit works — read this once

The public gateway can only settle chat requests from one prepaid operating account, so website chat uses a **prepaid** model:

- You sign a transfer **in your browser** moving test Spark from your address to the website account (`d34487a050b0deb094ca4f4e3834b8416212e55a6ffa18bd4eafcd3ca8c7ba3a`). Your key signs locally; nothing about the key leaves your device.
- The backend watches the chain and credits your **website balance** by the amount that actually arrived.
- Each chat request is then paid from that balance at its **real settled on-chain cost** — the same number shown in the answer's trace.
- Leftover credit can be transferred back to your address at any time from the Withdraw panel.

So the payer on-chain for website chats is the website account, funded by your deposit — traces and the chat page state this openly rather than pretending the charge came directly from your address. If you want requests settled directly from your own account, run your own gateway (see https://emberinfer.org/agents): the chain, seed and RPC are public.

## The six-part trace

Every answer carries a trace built only from chain records and the gateway's own timing — nothing is estimated or invented, and a segment that cannot be read yet says so:

- **Submit** — the request id, the model profile, and who paid (the website account, against your funded credit).
- **Freeze** — the amount held on-chain for the request and the block it was frozen at.
- **Assign** — which executor node the scheduler assigned.
- **Generate** — output tokens and latency (gateway-measured: first token and total).
- **Audit** — whether the request was sampled for audit, and if so the auditor and its verdict. Most requests are not sampled; the trace says that too.
- **Settle** — the final charged amount and how the fee split between executor, auditor and consumer refund, including any scarcity multiplier, at the settlement block.

## Conversations

The chat keeps multi-turn context: earlier messages in the current conversation are sent along with each new one. Context assembly happens in your browser; if a conversation grows past the local context budget, the oldest exchanges are left out and the page tells you. **Clear conversation** starts a fresh conversation — it does not touch your address, your on-chain balance or your website credit. Conversation history is stored only in your browser, per address.

## Privacy — Phase 0

Relays and the seed see no plaintext. The executor node that runs your request — and an auditor, if the request is sampled — **can see your message text**. End-to-end confidential inference (TEE-based) is designed but not deployed. Do not send sensitive data. The website backend logs request metadata (ids, heights, amounts) but not prompt or response text.

## Limitations, stated plainly

- This is a **public testnet**. Testnet Spark is **valueless test credit**: not money, not sold, not redeemable, and it carries over to no other network.
- All validators are currently run by **one operator**; validator membership is static. There is **no third-party security audit**.
- Only the model profiles with live serving nodes can answer; the model selector reflects real on-chain availability, and a profile with no executor is shown unavailable.
- Requests are bounded by executor stake exposure: the frozen bound grows with input size and requested output length, and a request whose bound exceeds the assigned node's remaining stake exposure is rejected by the chain (*stake exposure limit*). The chat page therefore keeps output length modest and retries once automatically; long conversations may still occasionally be rejected — shorten and resend.
- The website account model above is a property of the current gateway build, not of the protocol; gateway account custody is a known centralization gap.

## Using Ember for real

Programmatic consumption (MCP tools or your own gateway), running an executor node, and auditing are documented at https://emberinfer.org/agents, with machine-readable versions at https://emberinfer.org/llms.txt and https://emberinfer.org/openapi.yaml.
