Get Wallet

The getWallet function in the SDK returns the public wallet of the user. The user might be asked to go through a verification process before the wallet is returned.

This function returns the same response as the /v3/getWallet API endpoint.

{
  "status": "SUCCESS",
  "wallet": {
    "ethAddress": "0xD570518061287E79f137fca98D56902e086f95CB",
    "solAddress": "B4H5koiRxUuGz7YKALucvxUAc81k4b9Xf3aGTFXQ42mF",
    "eosAddress": "EOS8cfYwFefRy1pEeiWhvP5K5H3TV9514jyvuYeHEz1sqXbywGc2f"
  }
}

📘

Use /v3/getWallet API endpoint instead

For lower user friction, we recommend using the /v3/getWallet API endpoint instead of the SDK. The /v3/getWallet API endpoint doesn't require user verification.

SDK getWallet will always require user verification unless you provide a user when initializing the SDK

Calling getWallet

sdk.getWallet(
    Callback(
        onSuccess = { response: JsonResponse ->
            Log.d("onSuccess", response.toString())
        },
        onFailure = { error: JsonResponse ->
            Log.d("onFailure", error.toString())
        },
    ),
)

sdk.getWallet(
  callback: Callback(
    onSuccess: { (result: JsonResponse) in
      print("onSuccess")
      print(result.description)
    },
    onFailure: { (error: JsonResponse) in
      print("onFailure")
      print(error.description)
    }
  )
)
await sdk.getWallet();
await sdk.getWallet();

On success, the callback onSuccess or the Promise resolve function is called with the wallet as a JsonResponse object. This is what the data looks like:

{
  "status": "SUCCESS",
  "wallet": {
    "ethAddress": "0xD570518061287E79f137fca98D56902e086f95CB",
    "solAddress": "B4H5koiRxUuGz7YKALucvxUAc81k4b9Xf3aGTFXQ42mF",
    "eosAddress": "EOS8cfYwFefRy1pEeiWhvP5K5H3TV9514jyvuYeHEz1sqXbywGc2f"
  }
}

Error status

Callback onFailure or the Promise reject function is called when the user cancels the operation or if there's an error. The error object contains a status field which is a string indicating the status of the operation. Here's what the error object looks like:

{
  status: "USER_REQUEST_DENIED"
}

Here's a table of all possible error status returned by the SDK

StatusDescription
USER_REQUEST_DENIEDThe user has denied the get wallet request.
INVALID_EMAILThe SDK has been initialized with an invalid user email.
APP_ID_REQUIREDNo app-id was provided when initializing the SDK.
You can find the app id in the MetaKeep Developer Console.
APP_NOT_FOUNDThe provided app-id is invalid.
You can find the correct app-id in the MetaKeep Developer Console.
SOMETHING_WENT_WRONGAn unknown error occurred.
Please get in touch with us if you continue seeing this error.

© Copyright 2024, Passbird Research Inc.