# Generate project images through confidential Routstr

> Graspable can generate images through a confidential Routstr session, with a price you approve and checks before the image becomes a project asset. Two live tests cost 36.381 sats.

Michal Takáč, 19 October 2026 · Product
Source: https://graspable.dev/blog/confidential-image-generation

You can now ask Graspable to generate an image through Routstr's experimental Confidential mode. The agent lists the models your node offers, shows the price in sats, and asks you to approve it. After generation, Graspable checks the result and saves an ordinary image in your project.

This extends the confidential connection we already use for text. It uses [Juraj Bednar's open-source client](https://github.com/jooray/routstr-confidential-web), which we updated and reviewed for this integration.

## Use it in a project

Open **Settings → AI for the agent**, select your Routstr account, and switch on **Confidential mode** if the node offers it. Select that account for the project. Then ask:

> List the confidential image models and their prices. I need a neutral character reference portrait. Show me the available options before generating anything.

Reading the signed model list does not start a paid generation. Availability and prices come from your node, so you do not have to wait for a Graspable update when it changes its catalog.

Choose a model and quality tier, then approve the quoted purchase. Every image generation needs your approval. The charge comes from your Routstr balance, separately from Graspable Credits and the agent's USDC wallet.

The result goes into a new folder under `public/assets/`. You and the agent can use it like any other project image. Graspable does not overwrite an existing folder or put the generation prompt and payment receipt beside the image. Review the result before publishing: files under `public/` travel with the published project.

## What confidential means here

The protocol is designed to keep the image prompt and response encrypted between your computer and the model provider while the Routstr node relays the connection. The provider still sees the prompt and image. The node sees the requested model, quality tier, image count and request length, as well as connection timing.

Graspable checks the pinned node signature, provider certificate, protocol proofs, requested image variant and signed fixed-price receipt before accepting the result. A failed check stops the request. There is no retry through an ordinary unencrypted connection.

These checks cover this generation session. They do not make the rest of an agent conversation or a connected service confidential. The protocol is experimental; our integration review and successful tests are not an independent cryptographic audit.

## Two real requests

On 19 October, we generated and inspected two non-explicit portraits:

- Qwen Image 2.1 Turbo produced a 1024 × 1024 WebP for **24.254 sats**, in about 16.5 seconds.
- Lustify v8 produced a 1536 × 1536 fashion portrait for **12.127 sats**, in about 14.3 seconds.

Both passed verification on the first attempt. The total was **36.381 sats**. Those are measurements from this test, not a price list or a speed guarantee. Each request establishes a fresh encrypted session, so setup has a noticeable cost in time and traffic.

An interrupted session can still incur its quoted session fee. If generation finishes but saving fails, check your project and balance before approving another attempt. Graspable will not silently spend again.

[Set up Routstr and read the Confidential mode limits](https://graspable.dev/docs/engines-and-sign-in.md).
