Non-Permit typed data was flagged only when its primaryType was on a short list (Seaport, SafeTx, ...); any other order, relay or account-abstraction type got a plain Sign button and no PIN. Every signed field is now listed with its declared type, and a payload that names an address other than the user's and the verifying contract together with an amount, or carries raw bytes, gets the danger button and the PIN; text-only payloads stay ordinary. The encoder signed "false" as true, turned non-hex characters into zero bytes, wrapped integers past their width (2^256+5 signed as 5) and signed a non-array as an empty array, each while the overlay showed the original value. Such input is now refused before any overlay. Domain rows and the chain check use only the fields EIP712Domain declares; others are labelled as not signed. |
||
|---|---|---|
| .. | ||
| lib | ||
| addon.json | ||
| electrum-servers.json | ||
| index.js | ||
| LICENSE | ||
| panel.html | ||
| panel.js | ||
| qr.js | ||
| README.md | ||
| wallet-inject.js | ||
Aegis
The multi-chain wallet built into Theseus. Aegis runs as a Theseus add-on: it lives in the browser's sidebar and gives web pages a wallet without a separate extension.
- Chains: Bitcoin Cash (with CashTokens and BCMR metadata), Bitcoin,
DigiByte, Ethereum and EVM chains added through
wallet_addEthereumChain, Solana, Tron and Siacoin. - Keys: every wallet is derived from the Theseus vault, so one master password protects them all. Seeds and private keys can also be imported.
- Dapps: pages get
window.bitcoincash,window.wizardconnect,window.ethereum(EIP-1193),window.solanaandwindow.tronWeb/window.tronLink. Every connection and every signature goes through a Theseus approval overlay that shows what is being signed, decoded from the bytes that get signed. - WizardConnect: pair BCH dapps on the same device without scanning a QR.
Layout
addon.json add-on manifest (id, version, capabilities, update URL)
index.js the add-on: wallet runtimes, panel messages, dapp bridges
panel.html/.js the sidebar UI
wallet-inject.js page-side bridges (isolated world + injected main-world script)
lib/ chain adapters (chain-*.js), transaction and encoding helpers
lib/dgb/ vendored DigiByte address and PSBT modules
Aegis loads its heavier dependencies (@noble/*, @scure/bip32,
bitcoinjs-lib, @wizardconnect/*, @bitauth/libauth) from Theseus's
dependency tree through the add-on API, so this folder runs only inside
Theseus.
Releases
Aegis has its own version and its own update channel, separate from Theseus
releases. Theseus checks the signed feed in addon.json's updateURL,
verifies the Ed25519 signature and the SHA-256 of the package, and applies the
update on the next launch. Each Theseus release also bundles the current Aegis
for new installs.
This repository mirrors TheseusNavigator/bundled-addons/aegis from the
Theseus source tree, with its history.
License
Mozilla Public License 2.0, see LICENSE. lib/jsqr.js is jsQR,
Apache-2.0, see lib/jsqr.LICENSE. WizardConnect (LGPL-3.0-or-later) is not
included here; Aegis loads it from Theseus as a separate module.