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.

SDKgetWallet 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

Status

Description

USER_REQUEST_DENIED

The user has denied the get wallet request.

INVALID_EMAIL

The SDK has been initialized with an invalid user email.

APP_ID_REQUIRED

No app-id was provided when initializing the SDK.
You can find the app id in the MetaKeep Developer Console.

APP_NOT_FOUND

The provided app-id is invalid.
You can find the correct app-id in the MetaKeep Developer Console.

SOMETHING_WENT_WRONG

An unknown error occurred.
Please get in touch with us if you continue seeing this error.

© Copyright 2024, Passbird Research Inc.