The bundled adapters
ethers and viem are optional peers, imported only from their own subpath. A consumer using neither installs neither.
Why signTransaction is optional
A KMS, MPC, or browser-wallet signer can sign typed data but not a raw transaction. That is deliberately enough for:
- the entire
brickken-relayedpath — your key signs only the x402 payment authorization, which is EIP-712 typed data; - every RAMS EIP-712 flow, including the four signature-authorized lifecycle operations.
signTransaction would exclude exactly the custody setups an institutional integrator uses. What it does exclude is client-signed and client-broadcast: those need a raw transaction signature, and the SDK throws ValidationError locally if the configured signer cannot produce one.
Bring your own
Implement the three methods against your provider. Nothing else is required.Address checking
Forclient-signed and client-broadcast writes, the SDK compares the configured signer’s address against the signerAddress you passed and refuses a mismatch locally, case-insensitively — before any transaction is signed.
brickken-relayed mode signerAddress must be omitted: Brickken supplies its relayer as the signer, and passing one raises ValidationError.
Authentication
Which credential the SDK derives from what you pass.