Fetching User Details from the Server

Using the thirdweb TypeScript SDK

You can query user details through the thirdweb SDK using a wallet address, email, phone number, or user ID. This function requires a secret key to be present on the thirdweb client and should only be used on the server.

import { getUser } from "thirdweb";
// this is the wallet address that thirdweb has generated for the user
const user = await getUser({
client,
walletAddress: "0x123...",
});

Fetching User Details via API

To get the user details, you can make a GET request to the following endpoint:

https://embedded-wallet.thirdweb.com/api/2023-11-30/embedded-wallet/user-details

Query Parameters

You can specify the query parameter queryBy to query by different user identifiers:

  • queryBy: The parameter to query by. Can be one of walletAddress, email, phone, externalWalletAddress, or id.

You can then specify the value to query by, matching the queryBy parameter:

  • walletAddress: The user's wallet address that thirdweb has generated for them
  • email: The user's email address
  • phone: The user's phone number
  • externalWalletAddress: The user's wallet address that used to login via SIWE
  • id: The user's ID (for custom auth)

Authentication

You need to include your ThirdWeb Client Secret in the Authorization header.

If you are an ecosystem owner, you have to include the x-ecosystem-id header and optionally the x-ecosystem-partner-id header if the ecosystem is set to partners only.

Example curl Command

Here's an example curl command to fetch user details by email:

curl -X GET 'https://embedded-wallet.thirdweb.com/api/2023-11-30/embedded-wallet/user-details?queryBy=email&[email protected]' \
-H 'x-secret-key: YOUR_THIRD_WEB_CLIENT_SECRET'

Here's an example curl command to fetch user details by address:

curl -X GET 'https://embedded-wallet.thirdweb.com/api/2023-11-30/embedded-wallet/user-details?queryBy=walletAddress&walletAddress=0x123456789abcdef' \
-H 'x-secret-key: YOUR_THIRD_WEB_CLIENT_SECRET'

Here's an example curl command to fetch the user details for an ecosystem owner:

curl -X GET 'https://embedded-wallet.thirdweb.com/api/2023-11-30/embedded-wallet/user-details?queryBy=walletAddress&walletAddress=0x123456789abcdef' \
-H 'x-secret-key: YOUR_THIRD_WEB_CLIENT_SECRET' \
-H 'x-ecosystem-id: ecosystem.YOUR_ECOSYSTEM_ID' \
-H 'x-ecosystem-partner-id: YOUR_PARTNER_ID'

In both examples, replace YOUR_THIRD_WEB_CLIENT_SECRET with your actual ThirdWeb Client Secret.

Replace YOUR_ECOSYSTEM_ID and YOUR_PARTNER_ID with your actual ecosystem ID and partner ID respectively. The partner ID can be one you set up for yourself as the ecosystem owner.

Response Format

The API returns a JSON array with the following structure for each user:

[
{
"userId": "string",
"walletAddress": "string",
"email": "string (optional)",
"phone": "string (optional)",
"createdAt": "string",
"linkedAccounts": [
{
"type": "string",
"details": {
"phone": "string",
// or
"email": "string",
// or
"address": "string",
// or
"id": "string",
// Additional key-value pairs may be present
}
}
]
}
]

Note: The details object in linkedAccounts will contain different fields based on the account type.

Remember to handle the response appropriately in your chosen programming language, including error cases and parsing the JSON response.