Share everything,
or nothing.
Every node decides for itself what a stranger sees, what it takes to get in, and how far an AI may look. Not a permissions screen bolted on the side — four states a node can be in, and the same rules for people, for your own scripts, and for Lifebot.
What a node shows before you're in.
Three levels. Private — the node is visible, the inside is closed. KYC — visible, and the door checks you're human. Wallet — the node doesn't exist for you until someone inside brings you in.
| Seen from outside | Hidden until you're in | How you get in | Lifebot · AI / MCP | |
|---|---|---|---|---|
| Open node | everything — by link, and listed under any node you can see | nothing; opening it once puts you in its audience (you'll get its updates) | just open it | reads & assists — when you're alone in it, or when assist is on |
Private private | the node itself: title and description — by link, and listed among the children of nodes you can see | who's inside, its children, the chat, the change history, all the work in it | ask for access; someone inside approves you in the node's chat with @@you — no human check needed | like a person: it can ask for access (via MCP), and sees inside only after approval |
KYC-gated kyc | the node itself, like private — by link and among children | who's inside, children, chat, history, the work | prove you're a human, not a bot: a $0 card check via Apple Pay / Google Pay — then you're in, no approval needed | cannot pass the check (that takes a real card, in the app) — it asks you to enter yourself |
Wallet wallet | nothing — not in lists, counts, search, chat previews or live events; a direct link shows nothing, as if the node doesn't exist | everything, and even its existence | someone inside sends you the direct link, you pass the $0 human check, and they approve you from inside | doesn't know it exists — until you, inside it, ask; then it sees this wallet's subtree only |
“Inside” is everything past the title and description: who is in the node, its children, its chat and its change history. Your own tools pass the same doors under your account, and each handles wallets with extra care: the SDK returns only what you can open yourself; the ilml CLI shows wallet nodes as “Protected 🔒” until you add --reveal; and the MCP server, which is how AI agents connect, leaves wallet content out completely.
A $0 payment is a passport.
Like showing ID at a bank counter — except the bank does the checking. It's how a node knows there's a real person behind the click, not an AI bot or a script.
You open a KYC-gated node
You can see it exists — the title, the description. To go inside, the node asks you to verify.
Apple Pay or Google Pay, a real card, $0
You pick a working credit or debit card from your own bank and "pay" a zero-amount transaction. Your bank has to authorize it — even for $0 — and only a real account holder can make that happen.
The door opens
Nothing is charged, and the card token is used once and not kept. On a plain kyc node that's it — you're in, no owner approval. On a wallet the check comes first, then someone inside approves you.
An AI can't do this step — it takes a real card in the app. So whatever a KYC-gated node holds, every member in it is a verified human.
Three doors, three keys.
Private private
The node is visible — its title and description, by link and in lists — but everything inside is closed: members, children, chat, history. Ask for access; anyone already inside approves you by mentioning @@you in the node's chat, so everyone inside sees who let whom in, and when.
KYC kyc
Human-only. The node is visible, but to enter you prove there's a person behind the click: a $0 payment via Apple Pay or Google Pay with a real card from your bank. No owner approval — passing the check is enough. Bots and scripts can't get past it.
Wallet wallet
Not private — absent. Until you are inside, the node is not in its parent's list of children at all — not for a teammate, not for a script under their account, not for the AI. Once you are in, you and your own code see it like any other node. Nothing is shown by a direct link either. Getting in takes all three: the link from someone inside, the $0 human check, and their approval. Lifebot never sees it from the outside, even when you are a member; ask it from inside the wallet, once you switch the assistant on there, and it works there, knowing it is a wallet. And wherever a wallet surfaces on your screen — in search, in lists as you move through your nodes, in the messenger when someone links it, in in-app notifications and pushes, in the ilml CLI — it shows as Protected until you tap the eye, so nobody reads it over your shoulder.
Invisible outside. Blurred inside.
Outside: no signal at all
Unlike a private node, a wallet gives away nothing — no title, no lock icon, not a place in a list or a count of children, nothing in search, chat previews or live updates. A direct link shows nothing. Only people already inside know it's there.
Inside: blurred until you tap the eye
Even for you, wallet content is blurred by default — everywhere it can surface: search results, children lists, breadcrumbs, chat previews, the history modal, notifications. Run a search with a colleague beside you and a wallet hit comes back veiled, not exposed. Tap the eye to reveal it, when you're sure nobody is looking.
The AI can't find it
Lifebot walking down your tree never sees the wallet among a parent's children, and can't find it by searching. The only way it ever sees inside: you're in the wallet yourself and you ask it a question from there. That's your consent — and even then it sees this wallet's subtree only.
Three keys to get in
The direct link from someone inside · the $0 human check · their approval from inside, with @@you in the wallet's chat. All three, every time. And only the wallet's creator can move its children out of it.
You decide how far it looks.
“Can the assistant see everything?” is the question everyone asks. The answer is in your settings — and your settings are a node in your own graph, not a page on our side. Two switches there apply everywhere, and how far the assistant looks can be set again on any single node.
How far it looks
“Access to My Life context”. On, the assistant searches your whole graph, from My Life down. Off, it stays in the node you are asking from and what lies below it. Set it once for everything, then change it on any node that should be wider or narrower than the rest.
Whether it reads private nodes
With this switch off, the assistant sees that a private node exists and nothing inside it — its children stay hidden when it searches from anywhere else. Ask it from inside that private node, and it works there as usual.
Wallets ignore both
No switch opens a wallet. It is cut out of every list and every search the assistant runs, and where a path crosses one, the assistant is handed the word [Protected] instead of the node.
It can lock, never unlock
Ask the assistant to make a node private and it will. Ask it to take that off, or to set kyc or wallet, and it can’t — the server skips those tags, however the request is phrased. Opening what you closed stays a human act.
Which model answers, and how smart it should be, is set the same way — for everything, or node by node: pick its brain and its reach →
Build together — with real people.
Invite people into a node to run projects together, or keep it solo. Approval always happens from inside and in the open — @@you in the chat — so everyone in the node sees who let whom in, and when. And a KYC gate guarantees every member is a person, not a bot.
Sometimes you want the opposite: one link handed to many people who shouldn’t see each other. A node marked gateway is a drop-off point — an accelerator’s application box, a tender, an anonymous feedback line. Its change history stays empty and each visitor sees only themselves in the member list — not who came before; only people there at the same moment can see each other. Once you take a submission into your own tree, nothing shows it was ever there. The quiet covers the visit, not the words: whatever someone writes in the node’s chat stays visible like any other message. Set it when the node is created; it can’t be added later and never removed, so nobody can quietly turn someone else’s node into a door.
Your data. Your rules.
Open by choice, private by default where it counts.
Start your graph →