Interaction with web3 applications can be slow, costly, and risky. Quill leverages BLS signature aggregation on Ethereum layer 2 solutions, easily bringing fast and low-cost Ethereum transactions to your browser.
- send multiple txs as one to ensure atomic execution
- pay even less gas by reducing on chain footprint of signatures
- install the plugin
- create a contract wallet (uses bls keys)
- transfer L2 erc20 tokens
- use contract wallet with L2 dapps (coming soon)
To run the dev server:
yarn run dev:chrome # or dev:firefox etc, see scripts in package.json
Reset the extension. This is useful for getting the wallet to a clean slate in development. You can achieve this in your browser by either:
- Removing the extension and then re-adding via "Load unpacked".
- Or run
debug.reset();
twice in the background page console.
- Chrome/Brave plugin
- Secure storage of BLS private-keys
- Sign tx data:
- wallet creation
- erc20 transfers
- Submit txs to hosted aggregator
- Basic feedback from aggregator for UI updates (tx received, tx mined. tx dropped?)
- Secure storage of EDDSA and ECDSA keys
- Social recovery
- nominate guardians
- recover contract wallet
- Receive tx data from existing L2 dapps on networks:
- Optimism
- Arbitrum (coming soon)
- ...
- Receive and review multiple txs from dapps
- sign all and submit to aggregator
- Wallet feedback (from L2 sequencer)
- listening to wallet events
- wallet tx history
- Sign and submit multiple transactions as one (to L2 sequencer)
- local signature aggregation
- Review and sign typed data (712)
- Safe storage options for extension
- signing transactions
- signature verification
- signature aggregation
- Aggregator
- Future: L2 Sequencer
- Extension for Chrome/Brave and Firefox
- Web Extensions? combined extensions standard
- storyboard
- Common:
- Network name (hover chainId)
- Current BLS Key (option to create)
- Associated contract wallet address if any (option to create)
- contract wallet balance (L2 ETH token)
- Action to Transfer (starts tx data)
- tx edit section:
- Method name "transfer" (show methodId)
- Params as text fields
- address with checks (length, checksum)
- balance as decimal (*10^18)
- signed tx section:
- signed txs per row
- method name - nonce - (send)
- (aggregate) - (send all)
- signed txs per row