BlogUpdated 7 min read

Keeps nothing: follow one message through SolCard Inference

One ordinary message, traced from your keyboard to the model and back: everything that touches it, for how long, and what’s left when the answer lands. Nothing you wrote.

Contents

SolCard Inference is zero data retention. When the answer to your message arrives, nothing you wrote is kept anywhere along the way: not on our servers, not in our logs, not at the model. Your chats live on your device. Two switches change that, Search and Sync, and only you can turn them on.

Here’s one message, followed from your keyboard to the model and back, so you can see everything that touches it and what’s left behind.

The message

It’s Sunday night and the heater has been broken for a week. You open the chat on your laptop and type:

Write a firm but polite note to my landlord about the broken heater. It’s been seven days.

You press Enter. Here’s where that sentence goes.

Your message goes from your laptop through Cloudflare and our server to the model, and the answer comes back the same way. Your laptop keeps your chat. Our server keeps a billing line. Nothing keeps your words.

1. On your laptop

Your chats are stored in your browser, on your device. The list in the sidebar, every message, every reply: all of it lives in the browser’s own database on that laptop. That’s why your history is there when you come back, and why it’s nowhere else.

The page talks to two addresses and nothing else. Its security policy lets it reach our app and our API, and the browser enforces that.

  • There’s no analytics and no trackers.
  • A reply can’t load an image from anywhere else.
  • A link in an answer isn’t even looked up until you click it.
  • Outside code runs only on the sign-in page: Cloudflare’s bot check, and your wallet if you sign in with one.

Files you attach are read on your laptop and sent as text with your message. No upload service holds them.

2. On the way

Your message leaves encrypted. It carries the whole conversation so far, because that’s how a chat model works: each answer is written from the conversation it’s sent.

It passes through Cloudflare, which shields our API from attacks. Cloudflare opens the traffic to inspect it, in memory. In Cloudflare’s words: “nothing is written to disk except for cached static content.” Chat answers are never cached. Like any network in front of a website, it sees your IP address. On our account, Cloudflare sends no logs anywhere and runs no code on your messages.

3. On our server

Our server holds your note in memory while the answer is written, then lets it go. It writes it nowhere, and that’s built in:

  • Logs keep ids and numbers, never your words. Our logger has a short list of things it may write: which account, which model, how many tokens, how long it took. It drops anything else before writing, so a message can’t reach a log even by mistake.
  • The database has no place for it. No table holds what you send or what comes back. Sync’s scrambled copies, below, are the one thing stored, and only once you turn it on.
  • The build won’t change that. Automated checks fail the build if code tries to log a message or add a column for one.

One line does get written, for billing: the time, the key, the model, the tokens in and out, the cost, how long it took and whether it went through. It’s how your usage page and your bill add up. It doesn’t hold a word of what you wrote.

4. At the model

The model runs at our model host, which runs open models on its own hardware. Your message never reaches the labs that first trained them.

Our account there is zero data retention. Your message and the answer are processed in memory and not stored.

Every message also passes the host’s content check: an automated classifier that records its decision, not the text of your message or the answer. No person reads your message.

The host isn’t told who you are. It sees our account and an anonymous tag that keeps your conversation’s cache apart from everyone else’s. It never gets your name, your email or your IP address.

If the host is ever unreachable, the message takes a backup route to the same models. That route is set to zero data retention only: a model that would keep your message is refused, and request logging is off.

5. Back to you

The answer streams back the same way and lands in your browser, saved next to your message.

Your chat gets a name too. First it’s named from your own words, on your laptop: “Firm but polite note to my landlord”. After the first answer, a quick model call may suggest a better name. That’s one more request, treated like any other: nothing kept.

That’s the whole trip:

  • Your laptop has your chat.
  • We have a billing line that says you used a model for a few hundred tokens on Sunday night.
  • Nobody has a word of what you wrote.

Everything we keep

WhatWhyHow long
Your email or wallet addressIt’s your accountAs long as the account exists
One line per request: time, key, model, tokens, cost, speed, outcomeYour bill and your usage pageKept
Your IP address, in our server’s access logSecurityUntil the log fills and rolls over
Which pages you load (the address, your browser type), in our web host’s logRunning the site1 day
Rate-limit counters, by account or IP addressFair useMinutes to a day

What we never keep: your messages, the answers, files you attach, chat titles or your search terms. With Sync on, we keep them scrambled, and only you can open them.

The two switches

With Search on, a query goes to a search engine, which keeps it by its own rules. With Sync on, your chats are scrambled on your device, our servers keep a copy we can’t open, and your other devices unscramble it.

When you turn on Search, the model writes a search query from your question and sends it to a search engine to find current pages. That query leaves the zero-retention path: search engines set their own rules on what they keep. Zero data retention doesn’t cover web search.

So the app tells you the moment you switch it on: Search sends your question to a search engine. It’s off until you turn it on.

Sync

Sync puts your chats on all your devices: start the note on your laptop, finish it on your phone. To do that, we keep a copy, and the copy is scrambled.

Before a chat leaves your device, it’s locked with a key only your devices hold, behind your passkey (your fingerprint or face) or a recovery key only you have. What reaches our servers is noise:

  • We can store it, back it up and pass it to your phone.
  • We can’t open it.
  • Neither can anyone who asks us for it.

Our servers see the shape, not the contents:

  • how many chats you have and roughly how big they are;
  • which devices you’ve added;
  • roughly when each was last active (to the hour).

They never see a title or a word.

Nothing uploads until you set Sync up.

  • Delete a chat and it’s gone from our servers.
  • Delete them all and they’re gone at once.
  • Our database backups expire within 7 days.

Check it yourself

You don’t have to take our word for the page:

  1. Open any chat.
  2. Open your browser’s developer tools and go to the Network tab.
  3. Reload.

Every request goes to one of two places: app.solcardinference.ai, which serves the page, and api.solcardinference.ai, which carries your messages to the model. The rule that keeps it that way is in the page’s content-security-policy header.

We test ourselves the same way. We put a unique made-up word in every message of a full test run, then searched every database, cache and log it touched. Zero matches. And we checked that the live service runs exactly the code we reviewed, file for file.

The short version, for a friend

It answers, then forgets. Your chats stay on your phone or laptop. The company keeps a billing line, not your words. Search and Sync are the only switches that keep anything: Search sends your question to a search engine, and Sync stores a scrambled copy only you can open. You turn them on yourself.

Answers everything. Keeps nothing.

Bring the prompt that got refused.

Private. No refusals. In the app, or in the tools you already use.

Pay in crypto. No KYC.