You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
add_contact returns CONTACTS_LEDGER_NOT_PAIRED whenever no Ledger has been paired. This blocks the natural first-run / demo-mode flow where a user wants to label addresses before setting up signing — especially for read-only / accountant-share use cases. Reverse-decoration (preflight Invariant #7) consequently degrades to literal-address-only on every demo flow.
Repro
Smoke-test scripts 001/002/003/004/011 (and many others). Every add_contact({chain: "evm" | "btc", label, address}) call in default demo mode rejects with CONTACTS_LEDGER_NOT_PAIRED, even though the user only wants to label an address read-only.
Suggested fix
Allow a local/unsigned contacts store that:
accepts add_contact calls without a paired Ledger (returns a contact tagged unsigned: true),
verifies cryptographically and upgrades to verified: true once a Ledger is paired,
surfaces both states clearly ((contact: <label> — unsigned) vs (contact: <label> — verified) in the verification block), so the agent's Invariant Fix Compound dust rendering and add tx simulation #7 surfacing keeps working in degraded form.
Optional: extend EVM-only contacts to Solana/TRON/BTC (currently CONTACTS_CHAIN_NOT_YET_SUPPORTED for non-EVM in v1.0).
Summary
add_contactreturnsCONTACTS_LEDGER_NOT_PAIREDwhenever no Ledger has been paired. This blocks the natural first-run / demo-mode flow where a user wants to label addresses before setting up signing — especially for read-only / accountant-share use cases. Reverse-decoration (preflight Invariant #7) consequently degrades to literal-address-only on every demo flow.Repro
Smoke-test scripts 001/002/003/004/011 (and many others). Every
add_contact({chain: "evm" | "btc", label, address})call in default demo mode rejects withCONTACTS_LEDGER_NOT_PAIRED, even though the user only wants to label an address read-only.Suggested fix
Allow a local/unsigned contacts store that:
add_contactcalls without a paired Ledger (returns a contact taggedunsigned: true),verified: trueonce a Ledger is paired,(contact: <label> — unsigned)vs(contact: <label> — verified)in the verification block), so the agent's Invariant Fix Compound dust rendering and add tx simulation #7 surfacing keeps working in degraded form.Optional: extend EVM-only contacts to Solana/TRON/BTC (currently
CONTACTS_CHAIN_NOT_YET_SUPPORTEDfor non-EVM in v1.0).Source
120-script Claude Code smoke-test. Smoke-test reference: 001, 002, 003, 004, 011.
🤖 Generated with Claude Code