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.

Architecture diagram

SlothSign sits between the DApp and the isolated signer, relaying requests and signatures.

SlothSign signing flow: DApp → SlothSign → offline signer → signature → DApp

Layers

Three layers, one boundary: only the signer ever touches keys.

Layer 1

DApp

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

Layer 2

Extension

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

Layer 3

Isolated signer

CLI (local key, passphrase-protected) or offline phone / Trezor. Holds the private key and performs the cryptographic 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