beagle Privacy

Privacy

Last updated 29 September 2026 · beagle.chat

Beagle runs on your phone and on your computer. You open it from the app, from a browser, or from a terminal — three doors into the same program: a peer that talks to other peers. There is no account to create and no server holding your conversations, because there is nowhere for one to be held — your key is made on the device in front of you and stays there. This page says what is kept on that device, what leaves it, and who can see what.

iPhoneAndroidmacOS WindowsLinux

Opened from the app, a browser or a terminal — and in Chrome and Firefox, from the Beagle Chat extension (section 6).

01 What stays on your device, and where

The same things in every case — your identity, your profile, your contacts, your message history and the files you have sent or received. Only where they sit differs. None of it is copied anywhere else: what leaves the device is what you send — section 3 — and, in the extension, what you send by pressing Fill, section 6.

Where you open itWhere your data lives
The app
iPhone, Android
The app's own private storage on the phone, reachable by that app alone. It is there until you uninstall.
The app,
or a terminal
macOS, Windows, Linux
Ordinary files in your home directory: the key at ~/.agentnet/carrier/keypair.json, messages in ~/.agentnet/messages.json, received files under ~/.agentnet/downloads/. Somewhere else if you pass --config-dir.
A browser
any of them, nothing to install
That browser's own storage for this site, on that same device — IndexedDB, or localStorage where IndexedDB cannot be used, as in Safari. It survives closing the tab, closing the browser and restarting the machine; it is there when you come back. A private window is the exception, and says so.
The extension
Chrome, Firefox
The extension's own storage in that browser, on that device. Removing the extension removes it — export your key and your wallet's recovery phrase first.

Losing that storage destroys the identity. Nothing can reissue it — no one holds a copy, which is the same property that keeps it private. Use the key backup in the app to export it before you need it.

Which means: uninstalling the app on a phone, deleting ~/.agentnet on a computer, or — in a browser — clearing this site's data or closing a private window. On a desktop or the CLI the key is an ordinary file, so copying it somewhere safe is enough.

Ordinary use is not on that list. Closing the tab, quitting the browser, closing the app, rebooting: your identity and your history are still there afterwards, on that device.

02 What does not exist

03 What travels, and who sees it

Message and file content

Encrypted between you and the person you are talking to. Traffic reaches them over the peer-to-peer relay network — and from a browser tab, which cannot open a raw network socket, through a WebSocket bridge first. The bridge and the relays forward encrypted bytes and cannot read them.

Metadata, which encryption does not hide

Any server you connect to sees your IP address and the time you connected. That is true of the bridge, the relays, and every host in the table below.

What is announced about you

Your public key (your user id) and your Carrier address — these are what let anyone reach you at all. In a browser tab, before you create an identity on a first visit, nothing is announced.

While “Let people on this bridge see you” is on, your display name, description and avatar id go with it, and you appear in the list of people present so that someone with no contacts yet can find you. Turning it off in Profile stops the listing. It is your choice, it can be changed at any time, and it changes nothing about who can message you.

Calls and direct file transfer

These use WebRTC, which needs STUN servers to work out how to connect. When a direct connection cannot be made, the stream is relayed by a TURN server. Both see your IP address; the relayed stream stays encrypted and the relay cannot read it.

In the desktop app and the terminal

The local interface is bound to 127.0.0.1 — your own machine, not the network — and “Sign in with Beagle” refuses any request that does not come from it, so a website cannot reach your identity even on a shared network. The desktop app asks registry.npmjs.org whether a newer version exists.

04 Other services these apps contact

Each of these sees your IP address and the request itself, and nothing else.

HostWhy it is contactedWhat it receivesWhere
The bridge
bridge.beagle.chat, im.beagle.chat
Reaching the peer-to-peer network from a browser tab. Your user id and address; your name, description and avatar id while you are listed. Message bytes it cannot read. browser
Relays and bootstrap nodes Finding peers and carrying traffic when a direct path fails. Your address, and encrypted bytes. all
beagle.chat The list of relays, bootstrap nodes and STUN/TURN servers to use. The request for that file. all
ens-gateway.beaglechat.workers.dev Looking up *.beagles.eth names and their public profiles. The name or user id being looked up. browser, desktop
api.beagle.chat CryptoPunk avatar details when one is shown or chosen. The avatar id. browser, desktop
www.larvalabs.com The avatar images themselves. The image request. browser
points.beagle.chat The suggestion list on the Discover tab. The request for that list. browser, desktop
STUN / TURN servers Making calls and direct file transfers connect. Your IP address, and — only when relayed — an encrypted stream. all
wallet.licode.fun Token prices, for the Assets panel. The name of the token being priced — a public market lookup, the same for everyone asking. app
registry.npmjs.org Checking whether a newer version has been published. The version request. desktop, CLI
fonts.googleapis.com The web page's typeface. It works without it. The font request, on load. browser

05 What the people you talk to see

Your display name, description and avatar, and whatever you send them. They hold their own copy of your conversation on their own device, and what they do with it is up to them — as with any messenger, and as with any conversation.

06 The browser extension, and Fill with Beagle

The Beagle Chat extension for Chrome and Firefox runs the same peer inside the browser, so everything above applies to it: the key is made on the device, messages are end-to-end encrypted, and your identity, contacts and history are kept in the extension's own storage on that device. It also holds three things the other versions do not, all on the device as well:

Reading web pages: only when you press

The extension reads the page you are on in two cases, both started by you: Share this page reads its title and address, and Fill with Beagle reads its form and visible text. On F6S, Fill also reads your own F6S member and company pages as your browser shows them. It does not read page content otherwise. Web pages can also ask the wallet to connect, which you approve.

What pressing Fill sends

Fill is done by the Fill agent, fill.beagles.eth, operated by Decent Network. Pressing Fill sends it one request, end-to-end encrypted over the Beagle network like a message to a friend:

It answers with proposed values and a price in points. The extension writes the answers you accept into the page, and you submit the form yourself. Replies you type to the agent, and files you attach, go to it the same way. Private-profile fields set to private never leave the device, Fill included.

What the Fill agent does with it

A language model running on Decent Network's own hardware reads the request; it reads the first 6,000 characters of the page text. No third-party AI provider receives your page, your answers or your profile. The agent stores what it keeps on that one machine, in no cloud service, and sends no analytics or telemetry.

What the agent keepsContentsFor how long
Conversation Each request as received, its answers, the chat in both directions, and a per-field note of what was filled and why. Also the form in progress, and files you attached. 30 days, then deleted
Service logs Times, request ids, field types, counts. Not your values — only their length and a one-way hash. 7 days
Billing record Your Beagle ID, request ids, points, the model and token counts, and the form's website name. No form content. Kept, for billing
Contact record Your Beagle ID, when you first met the agent, and the greeting on your friend request. Until you ask

Send /forget to the Fill agent in chat at any time: it deletes your conversation, the form in progress, your attached files and your contact record at once, and tells you what it removed. Only the billing record, which holds no form content, stays. Nothing is sold, or shared with advertisers or analytics services. Your answer bank stays on your device; remove entries with /bank drop or in the extension's settings.

Other services the extension talks to

Besides the hosts in section 04: a Solana RPC node for the wallet's balance, history and transactions (public blockchain data, on the network you choose), and wallet.licode.fun for the wallet's optional signed-in features, with a session token you can clear in its settings. Offline mail to a friend waits encrypted on Decent Network's relay until they connect.

07 Changes

This page is versioned alongside the code it describes, so its history is the record of what changed and when. If an app starts doing something this page does not say, treat that as a bug in the app or in this page, and one worth reporting.