onionhat

Stego Service

Hide age-encrypted payloads in perfectly innocent-looking images

Fund a capability, keep the returned cap_code, and use it to access the stego API. This page puts the live setup flow right in front of you instead of making you reverse-engineer it from endpoint tables.

Methods ZEC, XMR
Selected rate 5000000 zat / image
Selected minimum 5000000 zat
Status Control panel online

Invoice creation, balance lookup, and a funded unlock flow are wired up through the Deno layer.

Paid area Public page only

The paid stego lab opens only after a funded capability and a Semaphore proof have both been verified.

Panel A

Mint a funding capability

This requests a fresh invoice from the Rust API and returns the only copy of the capability token. Pocket it immediately.

Payment method

No account gets created. The capability itself is the key to the clubhouse.

Panel B

Check funded balance

Paste a capability token to ask how much balance is loaded and how many image slots are left in the tank.

This form sends Authorization: Bearer <cap_code> to the API for you.

Panel C

Unlock the paid lab

Once a capability is funded, prove Semaphore membership for this lab scope and move into the protected route.

Scope: onionhat:stego_lab. The server verifies this proof before it saves the lab session. Verifier is not configured yet.

The saved capability and Semaphore session are scoped to /stego and kept out of page markup until you explicitly unlock the lab.

Step 1

Inspect limits and rates

Payment methods
zcash, monero
Supported formats
png, jpeg
Max image bytes
10485760
Max message bytes
102400

Step 2

Fund it, then unlock the gate

  • The returned cap_code is the only credential.
  • Pay the exact invoice instructions for the selected method. If a reference is returned, copy it exactly.
  • Balance checks and the paid lab both hang off that capability.
  • Whoever holds the token controls the paid balance, so treat it like cash with extra secrets.

Raw API surface

The bits that exist today
Endpoint Purpose
GET /api/stego/pricing Fetch current rates, supported formats, and size limits.
POST /api/stego/invoice Mint a payable invoice and return a capability plus deposit instructions.
GET /api/stego/balance Resolve funded balance and remaining image capacity from a bearer capability.