Project Name: Syrius Extension Wallet 0.3.6: hardening, operator modes, mobile apps
Description: The first proposal, Syrius Extension Wallet: refactoring, reskinning, and new features, covered 0.1.10 to 0.3.2. This one covers what came after it, 0.3.2 to 0.3.6, all delivered and released:
- The dApp boundary was hardened by two outside reviewers, in 36 pull requests. An approval is now single use, tied to the page, account and block it was shown for.
- A send can no longer be signed twice. Every block is recorded before it leaves, and an interrupted one is looked up and resent as the same bytes.
- Pillar, Sentinel, Accelerator-Z, token and spork operations are in the wallet. Two of them were Phase 2 candidates in the first proposal.
- The same wallet is an Android app, an iOS app and a Firefox add-on, built and published by CI beside the Chrome ZIP.
Why it matters for Zenon: every web dApp on Zenon signs through this extension, so its approval screen is the last check between a page and a user’s funds. And a Pillar operator can now register, collect and vote from a browser or a phone, without desktop Syrius.
URL:
- Release: https://github.com/sol-znn/syrius-extension/releases/tag/v0.3.6
- Source: https://github.com/sol-znn/syrius-extension (187 commits since
v0.3.2, 386 files, +41,976 / -5,412 lines) - Docs: changelog, security, integration, app requests
Team:
- sol: design, implementation, integration of every contributor PR, releases
- @0x3639: security review. 12 pull requests (#2 to #13, released as 0.3.4) and 4 issues (#38 to #41)
- edgepillar: review and fixes. 24 pull requests (#14 to #58) and 3 issues, among them #19, which the transaction journal answers
Delivered
| 0.3.2 (first proposal) | 0.3.6 | |
|---|---|---|
| dApp approvals | per-origin permission, every signature prompted | single use, expiring, bound to the page, the account and the exact block shown; cancelled when the page navigates; every contract argument decoded (#4 to #11) |
| What a site sees before consent | address and chain | nothing; afterwards only the node’s host |
| Approval window abuse | unbounded | four pending requests per tab, one window per 30 s; sandboxed null origins refused (#40, #39) |
| Interrupted send | outcome unknown, a retry signs a second block | recorded before sending, resent as the same bytes, never replaced (#31) |
| Two sends at once | the second is refused or displaces the first | take turns per account, across windows |
| Sending and receiving | only while the popup is open | in the background while unlocked; incoming transfers received every 30 s |
| Proof of work | one core, no estimate | up to four cores, with a countdown; works on all platforms |
| Operator functions | none | Pillar (register, update, revoke, rewards), Sentinel, Accelerator-Z (create, phases, vote), Sporks |
| Tokens | list | issue with a custom id prefix or suffix, mint, burn, update |
| Everyday use | send, receive, stake, delegate | address book, delegate APR and sorting, batch plasma cancel, Zap, dollar value, node stats |
| Look | token-driven design system | redesign in dark and light, vendored fonts and icons, no remote assets |
| Errors | raw node output | a number and a short description for each |
| New wallet | confirm all 24 words in order | confirm three, by position |
| Updating | download the ZIP by hand | App updates in place and checks the published checksum |
| Platforms | Chrome and Brave ZIP | plus Android APK (signed), iOS IPA (unsigned), Firefox XPI (unsigned) |
| Mobile | none | fingerprint or Face ID, QR scan, syrius:// links, syrius://request for other apps |
| Tests | selector check and one dApp end-to-end | 39 suites: 32 in Node, 7 in a real browser |
Against the first proposal’s Phase 2 list:
| Candidate | State |
|---|---|
| Accelerator-Z: browse, vote, create | delivered (Pillar mode) |
| Sentinel support | delivered |
| Bugs reported against 0.3.x | delivered; no issue is open |
| Chrome Web Store and Firefox listings | Firefox package builds and works; not listed (see below). Chrome Web Store not updated |
| P2P / HTLC swaps in the wallet | not planned - Ferry is supported |
| WalletConnect | not started |
| Hardware wallets (Ledger) | not started |
Funding
Total Requested Funding = 5,000 ZNN and 50,000 QSR, one phase, delivered.
| ZNN | QSR | |
|---|---|---|
| sol | 3,000 | 30,000 |
| @0x3639 (security review) | 1,000 | 10,000 |
| edgepillar (review and fixes) | 1,000 | 10,000 |
Project Duration: 2026-09-08 (0.3.2) to 2026-10-13 (0.3.6), four releases: 0.3.3, 0.3.4, 0.3.5, 0.3.6.
How did you calculate your budget?
- Scope. 187 commits and 41,976 added lines over 0.3.2, three new platforms, and a security pass by two reviewers.
- Comparable. The first proposal asked 4,000 ZNN and 40,000 QSR for 0.1.10 to 0.3.2. This is the project cap.
Other Information
Not yet proven:
- Installing 0.3.6 over 0.3.5, and the APK and IPA on a device. The APK’s signature verifies; the iOS build is unsigned and installs through SideStore or AltStore.
- The popup fallback for sending and receiving on a real Chromium 112, the oldest the manifest allows.
Risks and dependencies:
- Mozilla disabled the add-on on AMO as “deceptive or misleading”. An appeal is drafted, offering a new name and ID. Until it is reinstated there is no signed XPI.
- The 0.3.4 update asks for a new permission,
webNavigation. Chrome words it as “Read your browsing history”. It is what lets an approval be cancelled when its page navigates. elliptichas an open low-severity advisory with no patched version.
Previous proposals:
- SYRIUS v0.0.6 Improvements
- P2P Swaps in Syrius
- Submitted 2026-09-25: Ferry, Syrius Extension Wallet (0.3.2), NoM Utilities, Pillar Ownership Transfer, Zenoglyphs VM
On-chain filing:
| Project name (≤30 chars) | Funds |
|---|---|
Syrius Extension Wallet v0.3.6 |
5,000 ZNN / 50,000 QSR, one phase |