Skip to main content

Safety and privacy

The short version: the website has no analytics, the plugins have no telemetry, and the only public data is what the protocol needs to work.

This website​

Static files served by Caddy. No account system, no analytics, no advertising pixel. Fonts, scripts and images are served from the same host. The homepage makes one outside request: an eth_call against a public Base Sepolia RPC to read two contract values in your browser. That provider sees your IP address; we do not proxy or log the request. With JavaScript disabled the numbers render as dashes and nothing is sent.

The server keeps standard access logs for operational security, which include IP addresses. They rotate at 20 MiB with five files kept and are not used for profiling.

One functional cookie, NEXT_LOCALE, records the language you pick. Theme choice lives in localStorage under genkaku_theme and is never sent to a server. Neither is used for tracking, so there is no consent banner.

The plugins​

Neither plugin reports usage. They talk to:

  • a public Base Sepolia RPC, to read the directory and move escrow,
  • the seed relay, to discover peers and to carry a session when a direct connection is impossible,
  • the worker you chose, to run inference.

Prompts, filenames and model names are not sent to us. There is no telemetry endpoint in either plugin.

Keys​

Wallets are generated locally. The private key is stored in plain text, mode 0600, at ~/.dsh/genkaku/genkaku.keys.json, because DeepSeek Harness exposes no keyring codec. Anyone who can read that file on your machine can spend the wallet. Back it up, and do not sync that directory to a shared drive.

The user and worker plugins each keep their own key, so selling and buying do not share an identity.

During a session​

Inference runs on the worker you choose. The worker operator can see the prompts and outputs it serves; the marketplace stores neither.

If the session is carried by the seed relay, the relay operator can see connection metadata — peer addresses, timing and volume — but the libp2p stream is encrypted, so it cannot read the prompt or the reply.

A worker's wallet and peer ID are public by design, because that is how the directory works. Locators are optional; by default the worker plugin does not publish your public IP address. Publishing one is explicit and permanent.

What is public and permanent​

Registrations, session opens, settlements and claims are public and permanent. Nothing written to a chain can be edited or deleted by us, including after you stop using the software.

Deleting ~/.dsh/genkaku/ removes the local keys and state. It does not and cannot remove on-chain history. Access logs expire through rotation.

Content​

There is no automatic content filter. The protocol has no hook that inspects a prompt before a worker sees it, and the worker's policy hash is a commitment, not an enforced rule.

What does exist:

  • the worker operator sees each request and can refuse or stop serving,
  • anyone can refuse to run a worker, or to connect to one,
  • the software is open source, so these limits are inspectable rather than promised.

Do not use the network for illegal content. Running a worker does not oblige you to serve requests you do not want to serve.

Threat model in one table​

RiskWho can do itMitigation
Read your promptThe worker you pickedChoose a worker you trust; nothing else can hide it from them
Read your promptNobody else on a direct linklibp2p encryption
See who talks to whomThe relay operator, for relayed sessionsDirect connection; metadata is not content
Spend your walletAnyone who reads genkaku.keys.jsonFile permissions, disk encryption, backups
Lose funds to a bad receiptA malicious workerJobEscrow verifies the signature and caps spend at the quote
Recover a lost keyNobodyBack it up; there is no support path

Reporting​

Security issues: security@genkaku.app. Legal notices: legal@genkaku.app.