Never declare your allergy twice.
Tell it once that you're diabetic, or that groundnuts bring you out in hives. It remembers — across every session, on every screen — and suggests food people here actually eat.
No wallet. No seed phrase. Your record, your address.
What it knows about you
Condition
Type 2 diabetes
Allergy
Groundnuts — hives
recalled 2 facts · never asked again
Every other food app makes you start from zero.
01
You type it again
Diabetic. Allergic to groundnuts. Can't take too much salt. Every new chat, from the top.
02
One day you forget
For a craving that's an annoyance. For an allergy it's a hospital visit.
03
And it isn't yours
Whatever it did learn sits in someone else's database, on their terms.
Three steps, then it stops asking.
Step 01
Sign in with Google
A Sui address is created for you behind the scenes. No wallet to install, no gas to pay, nothing to write down.
zkLogin via Enoki
address owned by youTheir record, at step 01
- account
- 0x7f3a…c21e
- delegate
- granted to this app
- record
- empty — nobody has asked yet
Step 02
Talk to it like a person
It writes down conditions, allergies, and foods that disagreed with you. It ignores cravings and small talk — and stops entirely if you say “don’t save that”.
encrypted before it leaves
stored on WalrusTheir record, at step 02
- condition
- type 2 diabetes
- allergy
- groundnuts — hives
- not stored
- “I fancy jollof tonight”
Step 03
Everything else follows
Meal suggestions, and the practitioners you’re shown, both rank off what it remembers. You never fill in a form twice.
semantic recall
newer facts winTheir record, at step 03
- meal
- boiled yam, efo riro, grilled titus
- screened
- kuli kuli blocked — groundnut
- consultant
- dietitian · cites diabetes
Rules in the code, not promises in a prompt.
A model that is told to be careful is careful most of the time. Everything below is enforced whether it cooperates or not.
Recalls before it speaks
Every turn that touches food starts with a search of your own record, filtered by relevance. Nothing is answered from what it happens to remember from earlier in the chat.
A write gate, not a diary
Six things get written: a condition, an allergy, an explicit “no allergies”, a refusal with a reason, a symptom after eating, a standing dislike. Cravings, small talk and its own suggestions never do. Most turns store nothing.
The safety check isn't the model's job
Ingredients are matched against your recorded allergens after the model speaks. It knows kuli kuli is groundnut, semovita is gluten, and that garden egg is not an egg.
Newer facts win, out loud
Entries are dated and never overwritten. When two disagree, the newer one is used and the agent says which one it is acting on rather than quietly averaging them.
Taking something back is real
Retracting a fact writes a record that outranks it, so nothing reads it again — not this app, not any other agent holding your key. It is out of reach, and we don't call that deleted.
The same record, from any agent
An MCP server exposes the identical contract to Claude Code, Cursor, or anything else you use. A fact learned in one is enforced by the other, because the record isn't inside either.
One change, and everything else follows from it.
The record is not in our database. Every row below is a consequence of that, not a feature we bolted on.
| Fuuud | A normal nutrition chatbot | |
|---|---|---|
| Where your conditions live | On Walrus, under your own address | In their database, under their terms |
| Starting a fresh session | It already knows | You type it all again |
| Switching to another agent | Same record, over MCP | Start from zero |
| What gets written down | Four named categories, gated in code | Whatever the extractor felt like keeping |
| Allergen screening | Deterministic, runs after the model | The model's good intentions |
| Two facts that disagree | Newer date wins, said out loud | Whichever the retriever ranked first |
| Taking a fact back | Retraction nothing can read past | A support ticket, maybe |
| Cutting off access | Revoke the key onchain, no permission asked | Delete your account and hope |
There is no database. Memory is the only store.
Which is what lets someone clone the repo and run the whole thing with three environment variables — and what stops us keeping a copy of your conditions.
Ownership
Sui
Your account and the delegate key this app holds are objects onchain. Revoking is a transaction, not a request to us.
Durability
Walrus
Every fact is a blob you own. The app can disappear tomorrow and the record is still there, still yours.
Encryption
Seal
Facts are encrypted before they leave. Nobody running this service can read what you are managing.
Recall
Walrus Memory
Search by meaning, so “what can I eat tonight?” finds the allergy you declared in different words months ago.
We're a guest in your record, not its keeper.
Your memory belongs to your address, encrypted with keys only you hold. This app holds a delegate key you granted — and one button takes it back. We can't refuse, because the permission was never ours.
Encrypted end to end
Nobody running this service can read your conditions.
Revocable in one tap
Enforced onchain, not by our good behaviour. Revocation is forward-only, so it closes off everything saved from that moment on.
What we can't do yet
Nothing deletes. Retracting a fact puts it permanently out of reach of anything that reads your memory, but the encrypted entry stays on Walrus until its storage period expires. We'd rather say so.
The things worth asking a health app.
Is this medical advice?
No. It does not diagnose and it is not a doctor. When a condition is involved it says so and points you to a practitioner — and the practitioner list is ranked by what it recalled, so it can be specific about who.
What exactly gets written down?
Six things you assert about yourself: a medical condition, an allergy or intolerance, an explicit “I have no allergies”, a suggestion you refused with a reason, a symptom after eating, and a standing dislike such as “I don’t like a lot of vegetables”. Cravings, small talk, hypotheticals and its own suggestions are never stored. Most turns store nothing at all.
What if I say something I don't want kept?
Say “don't save that”, or anything meaning the same, and nothing from that turn is written — including a real condition mentioned inside it. That is enforced before the write, in code, not left to the model's judgement.
Can I take a fact back later?
Yes, from the settings page or by asking. Retracting writes a record that outranks the fact, so nothing can recall it again. It is not deletion: the encrypted entry stays on Walrus until its storage period expires, and we say that everywhere rather than in a footnote.
Do I need a wallet?
No. Signing in with Google creates a Sui address for you through zkLogin. Nothing to install, no gas to pay, no seed phrase to lose — and the address is yours, not ours.
What happens if this app shuts down?
Your record is unaffected. It lives on Walrus under your address, not in our database, and any other agent you authorise can read it over MCP. That is the point of building it this way.
Tell it once. That's the whole product.
Free while in beta. Health guidance only — not a substitute for a practitioner.