Awesome
<h2 align="center"> <br> <img src="/asset/png/FrameLogo512.png?raw=true" alt="Frame" width="150" /> <br> <br> F R A M E <br> <br> </h2> <h3 align="center">System-wide Web3 for macOS, Windows and Linux :tada:</h3> <br> <h5 align="center"> <a href="#features">Features</a> ⁃ <a href="#downloads">Downloads</a> ⁃ <a href="#related">Related</a> </h5> <br> <img src="/asset/png/FrameExample0-3-4.png?raw=true" />Frame is a web3 interface that lets you sign data, manage accounts, run your own connections to Ethereum/IPFS and securely and transparently interact with dapps and web3 protocols.
Features
- First-class Hardware Signer Support
- Use your Ledger and Trezor accounts with any dapp!
- Extensive Software Signer Support
- Use a mnemonic phrase, keystore.json or standalone private keys to create and backup accounts!
- Permissions
- You'll always have full control of which dapps have permission to access Frame and can monitor with full transparency what requests are being made to the network.
- Create your own connections to Ethereum/IPFS
- Run your own Ethereum light client or IPFS gateway without the command line!
- Seamlessly swap from local to remote nodes on the fly
- Never be locked into using a centralized gateway again!
- Menu Bar Support
- Frame stays out of the way and sits quietly in your menu bar until it's needed
- Cross Platform
- macOS, Windows and Linux!
Talks
Downloads
Run Source
# Clone
› git clone https://github.com/floating/frame
# Install
› npm install
# Run
› npm run prod
On Windows: Run npm install --global --production windows-build-tools
as administrator before running the demo. You can find more info about this here: https://github.com/felixrieseberg/windows-build-tools.
On Ubuntu: Run sudo apt-get install build-essential libudev-dev
before running the demo.
Build Apps
› npm run bundle # Create app bundle
› npm run build # Build apps for current platform
Connect to Frame natively
Frame exposes system-wide JSON-RPC endpoints ws://127.0.0.1:1248
and http://127.0.0.1:1248
that you can connect to from any app. We recommend using eth-provider to create a connection const provider = ethProvider('frame')
as eth-provider
will handle any connection edge cases across browsers and environments
Frame's injected provider
Frame also has a browser extension for injecting a Frame-connected EIP-1193 provider into web apps as window.ethereum
. This can be used to inject a connection when an app does not provide the option to connect to Frame natively.
Related
- Frame Chat - Feel free to drop in and ask questions!
- Frame Browser Extension - Use Frame with any web dapp
- eth-provider - A universal Ethereum provider
- Restore - A predictable and observable state container for React apps