Digital Trust Protocol

Last updated: 25 September 2026

Attention is a browser extension that lets you trust and rate X accounts and posts with a Nostr key stored in an encrypted vault on your device. This policy describes the data the extension handles. Attention does not run its own server and does not use analytics.

What data the extension handles#

On x.com and twitter.com, Attention reads public information already on the page:

  • Numeric X account IDs, lowercase handles, and related post IDs
  • The time of that observation and which allowlisted X operation it came from
  • The signed-in account’s numeric ID, taken from the public twid cookie value (u=<id>). The raw cookie string is not stored.

A page script may inspect copies of allowlisted X responses to read those public IDs. Direct messages, protected content, authorization tokens, and other personalized fields are not forwarded or saved. When you turn on a hide or trust filter, that same page script may hide matching items in allowlisted home-timeline responses so X does not draw them. The raw response stays in the page.

Attention does not search X for posts, and it does not post, like, follow, delete, or message on your behalf. A linking post is recorded only when that post is already in a timeline or post page X loaded. Only a validated match (post ID, handle, and proof text) is kept.

A kind 10011 claim is recorded from the handle and numeric ID already on that signed event. Linking an X account is done by putting your Nostr public key in the X bio. Attention does not fetch the X profile page, ask X for the text of a proof post, or open X’s compose window to publish a proof post. A linking post counts only when that post was already in a timeline or post page X loaded.

On your device, Attention stores:

  • An encrypted vault of your Nostr secret key, plus public account metadata such as an optional binding to an X account ID
  • Relay URLs, the interface language, and small settings
  • A non-secret index of X account ID, Nostr public key, and timestamps
  • When “Roaming of Nostr keys” is on: optional Easy-account roaming blobs, which are NIP-49 ciphertext only, plus credential checksums used to recognize a login. The secret key itself stays in the local vault. Turning roaming off clears those Sync copies and leaves the local vault in place.
  • Signed Nostr events you create or sync, including kind 32009 trust statements, kind 32014 ratings, and kind 10011 identity links, plus indexes, sync cursors, X identity records, and pending relay delivery state

The secret key stays in the extension service worker. Attention signs trust and rating statements you choose to publish. It does not offer window.nostr to websites and does not implement payments.

How data is stored#

  • chrome.storage.local holds the encrypted vault, settings, and related account metadata on this browser profile.
  • chrome.storage.sync holds relay URLs, the interface language, your active Nostr public key, the X-to-Nostr binding index, and, when roaming is on, the Easy-account ciphertext. Attention writes this area whether or not Chrome is signed in. It does not read your Google account email. Chrome copies chrome.storage.sync to your other browsers only when Chrome Sync is on for that profile. Chrome Sync stores that data with Google under your Google account.
  • IndexedDB in this browser profile holds events, identity records, and sync state.

How data is used#

  • To show trust and ratings for X accounts and posts you are looking at
  • To remember which Nostr key is bound to which X account
  • To sign and publish statements you choose to publish
  • To sync those statements with the Nostr relays you configure
  • To verify NIP-39 proofs that link a Nostr key to an X account

Third-party services#

Attention does not send this data to a server operated by Attention. Data leaves your device only in these cases:

  • Nostr relays you configure. The extension queries them for public trust statements, ratings, and identity links, and publishes events you choose to sign. Published events are public. A relay may keep them indefinitely. Each relay operator has its own practices.
  • X (x.com and twitter.com). Attention reads public posts and profiles that X already loaded in the page. It does not search X, fetch profile pages, or request post text from X. X Privacy Policy.
  • Google Chrome Sync, for the chrome.storage.sync items listed above. Google Privacy Policy.

Data sharing#

Attention does not sell data and does not share it with advertisers. Public Nostr events you publish can be read by anyone who queries the relays that store them. Chrome Sync data is available to Google as part of your browser sync, and to other browsers signed into the same Chrome profile.

Data retention and deletion#

Local data stays in this browser profile until you remove it. Uninstalling Attention removes the extension’s local storage and IndexedDB. Data already copied by Chrome Sync remains in your Google account until you clear Chrome Sync data. Events already accepted by a relay stay on that relay until the relay deletes them; publishing a newer replacement or a delete event updates what Attention treats as current, and the relay decides what it keeps.

You can remove a local X binding, change relays, and delete or replace statements from inside Attention. Clearing the extension’s site data in Chrome removes the local vault. Export or back up a key you want to keep before you do that.

Changes to this policy#

If these practices change, this page will be updated and the date above will change. The copy in the Attention source repository is the current policy.

Contact#

Questions about this policy: attention@trust.dance. Source and issues: github.com/DigitalTrustProtocol/BrowserExtension.