Single place for local deployment/play with different configs:
snap(MetaMask Snap signer)basic-web-wallet(seed pasted into browser wallet UI)cli-e2e(scripted end-to-end validation)
All commands are run from:
cd /Users/rossnkama/Developer/multivm-labs/account_abstraction- Docker running
forge,cast,cargo,cargo stylus, Node.js/npm, Bun- External repos expected by scripts are present under
~/Developer/tools/dlt/ - Ports free:
8547,4337,3000,3001,8080
| Config | Signer | Intended use |
|---|---|---|
snap |
MetaMask Snap (key in snap state) | Demo with better key handling UX |
basic-web-wallet |
Raw seed pasted into wallet UI | Quick local demo only |
cli-e2e |
Local CLI signer | Scripted integration verification |
Start stack and keep it running in a dedicated terminal:
./scripts/dev-stack.shWait for:
━━━ Ready ━━━Press Ctrl-C to shut down
If this terminal stops, deployments and RPC state are gone.
-
Start snap server:
cd pq-snap bun install bun run build bun run serve -
Start wallet UI:
cd demo/wallet npm install npm run dev -
In wallet (
http://localhost:3001):- Switch to
Snapmode - Click
Connect MetaMask Snap - Approve prompts in MetaMask Flask
- Copy displayed full public key
- Switch to
-
Install Kernel + module with snap public key:
cd /Users/rossnkama/Developer/multivm-labs/account_abstraction ./demo/setup.sh --snap-pubkey 0x<copied_3904_hex_chars>
-
Start dapp and send test tx:
cd demo/dapp npm install npm run dev -
Open
http://localhost:3000, pair WalletConnect, send tx, approve in wallet + snap.
-
Setup with local generated keypair:
./demo/setup.sh
-
Start wallet + dapp:
cd demo/wallet && npm install && npm run dev # new terminal cd demo/dapp && npm install && npm run dev
-
Load seed into wallet UI from generated file:
xxd -p demo/.keys/sk.bin | tr -d '\n'
-
Paste seed in wallet UI (
Seedmode), pair WalletConnect, send tx.
Run full scripted integration test:
./scripts/e2e-test.shThis deploys Kernel infra, installs PQ validator, signs/submits UserOps, and checks receipts.
-
EntryPoint ... has no code./scripts/dev-stack.shis not running anymore.
-
Fetching local snaps is disabled- Enable localhost/local snaps in MetaMask Flask settings, then retry connect.
-
Wallet shows signer not ready
snap: reconnect snap and ensurepq-snapserver is live on8080.basic-web-wallet: re-paste a valid 32-byte seed hex.
- Snap details:
pq-snap/README.md - Demo app details:
demo/README.md - Stack internals:
scripts/README.md