Skip to main content

Wallet Provider API methods

Call each via provider.request({ method: '<name>', params: [...] }) unless noted otherwise.

Common error codes

  • TIMEOUT: popup not resolved before timeout
  • POPUP_ERROR: could not open popup
  • …Cancelled: user closed popup (e.g., validationCancelled, addTwitterIdentityCancelled)
  • Method-specific errors (e.g., nativeTransferError, sendTransactionError), with optional details

Connection

connect

  • Params: none
  • Behavior: opens a connection popup; user approves/denies.
  • Success data: { address: string }
  • Errors: connectionDenied, connectionCancelled, TIMEOUT, POPUP_ERROR
Example:
const res = await provider.request({ method: 'connect' });
if (res.success) {
  console.log('Connected address:', res.data.address);
}

Transactions

These let your dApp construct transactions (or messages) and have the wallet sign and/or broadcast them.

sign

  • Params: [ message: string ]
  • Behavior: opens a sign popup for a plain message.
  • Success data: { signature: string } (wrapped by the wallet; underlying object includes { success: true, signature })
  • Errors: signError, signCancelled, TIMEOUT, NOT_LOGGED_IN
Example:
const res = await provider.request({ method: 'sign', params: ['hello world'] });

signTransaction

  • Params: [ unsignedTransaction: Transaction ]
  • Behavior: opens a sign-transaction popup and returns the signed transaction.
  • Success data: { signedTransaction } (wrapped; underlying object includes { success: true, signedTransaction })
  • Errors: signTransactionError, signTransactionCancelled, TIMEOUT, NOT_LOGGED_IN
Example:
const unsignedTx = {/* Transaction from SDK */};
const res = await provider.request({ method: 'signTransaction', params: [unsignedTx] });

sendTransaction

  • Params: [ transaction: Transaction ]
  • Behavior: signs the transaction, validates it, opens validation popup; on confirmation, broadcasts.
  • Success data: { result, validityData }
  • Errors: sendTransactionError, sendTransactionCancelled, TIMEOUT, POPUP_ERROR
Example:
const tx = {/* Transaction from SDK */};
const res = await provider.request({ method: 'sendTransaction', params: [tx] });

sendSignedTransaction

  • Params: [ signedTransaction: Transaction ]
  • Behavior: validates the signed transaction, opens validation popup; on confirmation, broadcasts.
  • Success data: { result, validityData }
  • Errors: sendSignedTransactionError, sendSignedTransactionCancelled, TIMEOUT, POPUP_ERROR
Example:
const signedTx = {/* signed Transaction from SDK */};
const res = await provider.request({ method: 'sendSignedTransaction', params: [signedTx] });

Transaction helpers

These will construct, validate and broadcast transactions directly inside the wallet by passing the required parameters.

nativeTransfer

  • Params: [ { recipientAddress: string, amount: number } ]
  • Behavior: creates a transfer, validates it, then opens validation popup for user confirmation and broadcast.
  • Success data: { result, validityData }
  • Errors: nativeTransferError, nativeTransferCancelled, TIMEOUT, POPUP_ERROR
Example:
const res = await provider.request({
  method: 'nativeTransfer',
  params: [{ recipientAddress: '0xabc...', amount: 1 }],
});

Identity

getXmIdentities

  • Params: none
  • Success data: list of identities from SDK
  • Errors: getXmIdentitiesError
Example:
const res = await provider.request({ method: 'getXmIdentities' });

addXmIdentity

  • Params: [payload: InferFromSignaturePayload]
  • Behavior: infers and validates identity, then prompts user in validation popup; upon confirmation broadcasts.
  • Success data: { result, validityData }
  • Errors: addXmIdentityError, addXmIdentityCancelled, TIMEOUT
Example:
const payload = /* build InferFromSignaturePayload */
const res = await provider.request({ method: 'addXmIdentity', params: [payload] });

removeXmIdentity

  • Params: [payload: XMCoreTargetIdentityPayload]
  • Behavior: creates removal validity data and prompts user in validation popup; upon confirmation broadcasts.
  • Success data: { result, validityData }
  • Errors: removeXmIdentityError, removeXmIdentityCancelled, TIMEOUT
Example:
const payload = { /* XMCoreTargetIdentityPayload */ };
const res = await provider.request({ method: 'removeXmIdentity', params: [payload] });

getWeb2Identities

  • Params: none
  • Success data: identities list from SDK
  • Errors: getWeb2IdentitiesError
Example:
const res = await provider.request({ method: 'getWeb2Identities' });

getWeb2IdentityProofPayload

  • Params: none
  • Success data: proof payload to be used for Web2 identity linking
  • Errors: getWeb2IdentityProofPayloadError (also returned if user not logged in)
Example:
const res = await provider.request({ method: 'getWeb2IdentityProofPayload' });

addTwitterIdentity

  • Params: [payload: TwitterProof]
  • Behavior: validates and prompts user in validation popup; upon confirmation broadcasts.
  • Success data: { result, validityData }
  • Errors: addTwitterIdentityError, addTwitterIdentityCancelled, TIMEOUT
Example:
const proof = /* TwitterProof from your backend/SDK */
const res = await provider.request({ method: 'addTwitterIdentity', params: [proof] });

removeWeb2Identity

  • Params: [ { context: string, username: string } ]
  • Behavior: constructs validity data and prompts user in validation popup; upon confirmation broadcasts.
  • Success data: { result, validityData }
  • Errors: removeWeb2IdentityError, removeWeb2IdentityCancelled, TIMEOUT
Example:
const res = await provider.request({
  method: 'removeWeb2Identity',
  params: [{ context: 'twitter', username: 'handle' }],
});