The signing boundary

The extension is a transport + signer provider, never a wallet backend. The only step that touches keys happens on the isolated signer.

Layers

1

DApp

Owns business logic, RPC, and broadcasting. Sends signing requests through EIP-1193 or wallet-standard.

2

Extension

Transport and signer provider, not a wallet backend. Converts native requests into a unified SignerRequest, renders intent, and relays text / QR / signatures.

3

Isolated signer

CLI (local key, passphrase-protected) or offline phone / Trezor. Holds the private key and performs the cryptographic signature.

Request flow

RequestUnderstandConfirmSignReturn signature

Unified request

Both chains share one SignerRequest shape; chain adapters translate native calls.

FieldTypeDescription
versionnumberProtocol version
chainethereum | solanaChain family
chainIdstringChain identifier
addressstringSigning address
typetransaction | message | typedDataWhat to sign
payloadstringChain-specific payload