Response: signed_tx → signature
The envelope is unchanged — both v1 and v2 return V1Response { header, body } — and the sign-result field name changed. How failures are delivered also changed (see below).
| v1 | v2 | |
|---|---|---|
| signTransaction result | a per-network field — according to the v1 guide: signed_tx (most networks added later), signed (EVM, tokens, Bitcoin), sign (XRP), sign_v / sign_r / sign_s (Klaytn) | body.parameter.signature (every network) |
| getAddress result | body.parameter.address (per the v1 guide) | body.parameter.address |
v1 parsing
const raw = res.body.parameter.signed_tx // or .signed / .sign / sign_v… — depends on the network
v2 parsing
const raw = res.body.parameter.signature
Error handling changed: in v1 most failures rejected the promise (pop-up closed, timeout, any non-success response except a transaction user_cancel). In v2 a request-level failure resolves with header.status === 'failure' and body.error.code (a string) — check header.status instead of relying on catch. Argument errors are caught in the connector before sending: v1 rejected the promise for these, while in v2 setLabel, syncAccount and selectAddress throw synchronously (use try { await … } catch, not .catch()) and getAddress / getPublicKey / sign() reject. See Error Codes.