A system-wide EVM wallet and signing firewall for browsers, native applications, and command-line tools.
Desktop releases · Browser companion · Security · Standards · RPC compatibility
Warning
This is a community-maintained wallet preview with no independent security audit. The current release target is Linux x64. Back up your Frame profile, verify release checksums, and test with accounts that do not hold valuable assets before relying on a release. Use at your own risk.
Frame runs as a desktop wallet and exposes one consistent approval and signing interface to the rest of the system. Dapps can connect through the paired browser companion or directly through Frame's local EIP-1193/JSON-RPC provider. Accounts and chains are routed independently, so applications do not have to share one global network selection.
Frame 0.8.0 is the current Linux x64 AppImage and deb release candidate.
Browser dapps require the separately packaged Frame Companion 0.13.1
candidate. The last published versions remain available from the
desktop releases and
companion releases until
the paired 0.8.0 and 0.13.1 artifacts are published.
| Component or platform | Current status |
|---|---|
| Linux x64 AppImage and deb | Current qualified release target |
| Trezor Safe 7 over USB | Physically tested for address verification, signing, broadcast, and reconnect |
| Trezor Model One over USB | Physically tested with documented typed-data and testnet limitations |
| Ledger and GridPlus Lattice1 | Implemented with automated coverage; not physically requalified for 0.8.0 |
| Seed phrase, private key, and keystore | Encrypted local signer workers; disposable seed and private-key flows tested |
| Watch-only addresses | Supported for monitoring; signing is blocked |
| Chrome and Firefox companion | Packaged and tested against the 0.8.0 desktop protocol |
| macOS, Windows, and Linux arm64 | Not produced or qualified by this fork |
| Trezor Safe 7 Bluetooth | Unsupported |
See Signer and Platform Support for the evidence behind each claim and all known limitations. Trezor Suite is not required for the qualified Safe 7 USB flow.
- System-wide provider: HTTP and WebSocket JSON-RPC endpoints let browsers, native programs, and command-line tools use the same wallet.
- Hardware-first signing: Trezor, Ledger, and GridPlus signer adapters keep signing behind explicit device and capability checks.
- Software and watch accounts: Seed, private-key, keystore, and watch-only accounts coexist behind clear signing boundaries.
- Local contacts: Save, search, back up, and restore trusted EVM destinations. Saved contacts and existing Frame account names appear beside the full address during transfer and approval review without changing the signed payload; saved contacts take precedence.
- Origin permissions: Account access and wallet-owned RPC methods are permission-gated for each requesting origin and selected account. Passive discovery calls fail closed without opening an approval prompt.
- Transaction review: Calldata decoding, approval-risk detection, configured-RPC simulation, native balance effects, logs, and bounded traces provide evidence before approval. Simulation is evidence, not a guarantee.
- Clearer signatures: Structured EIP-712 review, permit and Permit2
detection, SIWE interpretation, hardware capability warnings, and explicit
consent for dangerous
eth_signrequests. - Multichain routing: Each application can target an enabled chain without forcing every connected application onto one global network.
- Curated Yearn Earn: Locally allowlisted Ethereum, Base, and Katana Yearn products with positions, direct and product-specific workflows, exact approvals, configured-RPC simulation, ordinary Frame signer review, and hidden balance tracking for curated assets and vault shares. Packaged Base deposit, partial withdrawal, Max redeem, and physical Trezor signing have been exercised; other product paths retain the narrower evidence and limitations documented in Yearn Earn.
- Modern wallet methods: Hardened EIP-1193 behavior, chain add/switch flows, paired-companion EIP-6963 discovery, and non-atomic EIP-5792 wallet calls.
- User-controlled infrastructure: Custom Ethereum RPC and Kubo IPFS endpoints remain supported.
- Release evidence: Locked dependencies, automated tests, CodeQL, package verification, SHA-256 manifests, CycloneDX SBOMs, and GitHub build provenance accompany the release process.
Exact support boundaries are maintained in Supported Ethereum Standards and RPC Compatibility.
After the candidate is published, download Frame-0.8.0.AppImage or
frame_0.8.0_amd64.deb together with SHA256SUMS from the
0.8.0 release. Verify
the files from the download directory before running either package:
sha256sum --check --ignore-missing SHA256SUMSRun the AppImage without installing it:
chmod +x Frame-0.8.0.AppImage
./Frame-0.8.0.AppImageOr install the deb package:
sudo apt install ./frame_0.8.0_amd64.debThe Linux packages are currently unsigned. Verify their checksums and GitHub artifact attestations against the published release before installation.
The browser companion injects Frame's EIP-1193 provider and announces it using
EIP-6963. Once the candidate is published, download the Chrome or Firefox
archive from the
0.13.1 companion release,
verify its checksum, extract it, and follow the
companion installation instructions.
The first connection displays a six-digit code in Frame and the extension. Compare both codes before approving the pairing. Older store extensions do not implement the authenticated protocol used by this desktop release.
The repository pins Node and npm versions. On Ubuntu or Debian, install the native build prerequisites first:
sudo apt-get update
sudo apt-get install build-essential libudev-devThen install the pinned toolchain and dependencies:
git clone https://github.com/jorphex/frame.git
cd frame
nvm install
nvm use
npm install --global npm@11.12.0
npm run setup:ci
npm run prodnpm run setup:ci uses the committed lockfile, permits only reviewed dependency
install scripts, installs Electron, and rebuilds the native HID module.
To produce the qualified Linux package formats locally:
npm run compile
npm run bundle
npm run package:linux:x64Release candidates require the complete checks documented in Release Procedure; a successful local package command alone is not release qualification.
Frame listens only on the loopback interface:
http://127.0.0.1:1248
ws://127.0.0.1:1248
Applications can send standard JSON-RPC requests to these endpoints and route an enabled EVM chain using Frame's documented request metadata. Wallet-owned methods, subscriptions, origin handling, limits, and known local-process trust boundaries are documented in RPC Compatibility.
Frame reads decentralized dapp and token content through a Kubo RPC endpoint.
Set FRAME_IPFS_API_URL to use a different endpoint and set
NEBULA_AUTH_TOKEN when it requires HTTP Basic authentication. The existing
hosted endpoint remains the default.
Kubo RPC is an administrative interface. Keep a local endpoint bound to localhost, or place a remote endpoint behind TLS, authentication, and a restricted proxy. Do not expose it directly to the public internet. Archived dapp downloads are bounded and activated only after their complete UnixFS directory CID matches the ENS manifest.
Do not report wallet secrets or vulnerability details in a public issue. Follow the private-reporting process in Security Policy. The Threat Model documents local RPC, renderer, persistence, signer, network, and release boundaries.
Published packages do not inherit support guarantees from the original Frame maintainers. Only the newest release in this repository is considered for community security fixes.
The current release candidate contains the first curated Yearn Earn milestone and local contacts; its exact scope and evidence boundaries are documented in Yearn Earn. Near-term desktop work focuses on broader UI and simulation qualification. Smart-account support and a future mobile client with WalletConnect built around shared wallet-core logic remain later work. Roadmap items are directional and are not release support claims.
- Security Policy
- Threat Model
- Supported Ethereum Standards
- RPC Compatibility
- Signer and Platform Support
- Yearn Earn
- Linux Release Qualification
- Release Procedure
This repository is a community-maintained continuation of the GPL-licensed Frame wallet originally developed by Frame Labs. It is not an official Frame Labs release and is not supported by the original maintainers.
Frame is distributed under the GNU General Public License v3.0. Modified versions and binaries must continue to satisfy the GPL's source, license, notice, and corresponding-source requirements.
