On August 25th, Forward Research and the AO team released the public beta of PermawebOS Browser. The browser puts an Arweave and AO wallet, signer and the choice of network infrastructure under the user's control.

Wallets still need protection lists. People open phishing links, paste the wrong address, and sometimes send tokens directly to a process that was never supposed to receive a normal transfer. We built Gatekeeper so this protection does not have to come from a list hardcoded into the browser.

PermawebOS Browser

PermawebOS Browser contains browser-local AO components alongside the wallet and signer. Compatible applications use its AO.js context, which routes supported requests through the user's selected Arweave gateway, ANS-104 uploader and HyperBEAM node.

These routes are configured separately. Someone can keep the supplied gateway, use a community uploader and point process requests at their own HyperBEAM node. The application talks through the shared context without being given those private endpoints.

The browser node has a specific scope. It does not validate Arweave locally, and a dApp using its own network client still follows its own configuration. PermawebOS Browser handles account permissions, signing and supported network routes inside the extension. Gatekeeper supplies the list used to warn the user before a bad site or transfer reaches the wallet.

How Gatekeeper works

Today we are releasing Gatekeeper, a community-run repository for publishing PermawebOS Browser protection lists.

The repository is pretty simple: 2 YAML source files. One contains phishing sites; the other contains risky Arweave addresses and process IDs. Gatekeeper validates and normalizes each entry, rejects duplicates, and builds the result into a versioned JSON file for the browser.

lists/sites.yaml + lists/addresses.yaml
-> validate
-> build
-> publish to Arweave
-> PermawebOS Browser

The first published list contains 1,714 sites and 7 Arweave addresses or process IDs. Site entries block either an exact URL or a domain and its subdomains. Address entries warn before transfers to token processes, authorities and exchange hot wallets, where a normal wallet transfer could strand funds.

Gatekeeper's updater reads the public Phantom, MetaMask and SEAL phishing feeds. A full import would turn it into a general internet blocklist, so the updater filters for entries related to wallet security by default. Gatekeeper has no fuzzy lookalike matching and refuses entries for shared-hosting roots such as arweave.net, pages.dev and vercel.app. A phishing page hosted on one of them has to be listed by its exact subdomain or URL.

Who controls the list?

The trusted publisher linked in the Gatekeeper repository is one community publisher. It has no special status in the official PermawebOS Browser build, and the browser does not enforce its list or any other list.

Anyone can review our entries, fork the repository and publish a different artifact. Users and communities choose which publisher they trust, just as they choose which gateway, uploader and HyperBEAM node to use.

Publishing on Arweave

Gatekeeper's publish command builds gatekeeper-list.v1.json and posts it to Arweave. The transaction includes the schema version, package version, source commit and SHA-256 content digest. A browser can check the list it fetched against its source and digest.

The first trusted-publisher artifact is available on Arweave, tied to Gatekeeper v0.1.2 and source commit a6f79f4dd603372cfdd9860c06e2cb3d58523c5d.

Adding and removing entries

The contribution policy is boring on purpose. A false positive can interrupt normal wallet activity, so removal requests are treated as urgent. New entries need the narrowest possible match and public evidence. Gatekeeper is not a general moderation or sanctions list, a reputation database, or a place to settle project disputes.

The source, list policy and publishing tools are open at github.com/decentldotland/gatekeeper. If an entry is wrong, open a PR and make the case in public.