51 lines
2.2 KiB
Markdown
51 lines
2.2 KiB
Markdown
|
|
# Aegis
|
||
|
|
|
||
|
|
The multi-chain wallet built into [Theseus](https://code.silentmode.st/silentmode/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.solana` and `window.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](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.
|