Beacon browser

Beacon browser

How it works

  • Beacon syncs block headers to retrive a verifiable merkle tree root.
  • Requests proofs from peers to retrive a DNSSEC signed zone.
  • Performs in-browser DNSSEC validation.
  • Verifies certificates with DANE.


There are still lots of things we’d like to do. Contributions are welcome!

  • Android & linux support
  • Automatic updates using Omaha 4
  • Signed binaries for windows
  • Widevine support
  • DNSSEC prefetching to reduce latency
  • DANE support for ICANN domains
  • Experiment with embedding a DNSSEC chain in x509 certificates and/or a TLS extension (RFC9102).
  • Experiment with embedding HNS proofs in x509 certificates.
  • Block internal Chrome telemetry & other privacy enhancements
  • More tests


This repository does not contain the actual Chromium code it will be fetched using butil.

Get started

Install chromium build depedencies for the target platform and then install butil.

$ go install[email protected]

butil is beacon’s development utility. It helps you apply patches and do various overrides to chromium. Make sure it’s in your path.

$ mkdir beacon && cd beacon
$ butil clone
$ butil init

This may take a while since init will fetch chromium. Once it’s done, this repo will be at src/beacon


$ butil build debug

Updating butil

butil is just a wrapper around the actual tool. You can make changes to tools/src/realbutil and it will get rebuilt automatically.

Making changes to Chromium

Make your modifications to chromium and when you are ready to transfer those into patches: Note: This will remove any patches that are no longer in chromium.

$ butil patches update

To remove a patch just undo the changes in chromium repo and call patches update again.


Beacon ports patches from Brave mainly for branding and shares a similar patching format/tooling with brave-core


View Github