---
updatedAt: 2025-07-27T05:35:17.000Z
agentTools:
  projectIndex: https://docs.metakeep.xyz/llms.txt
---

# Map the User Handle

Once you have created the `User Handle`, you can map it to the user's blockchain addresses on the supported chains.. This operation `requires user's consent` and should be done on the `client side` using the [FIOWallet SDK](https://github.com/PassbirdCo/MetaKeepCodeSamples/blob/main/eos/fio/lib/README.md). The user will have to sign the transaction to map the `User Handle` to their blockchain address.

## Limitations

1. You can map `up to 5 blockchain addresses` to the User Handle at a time. If you need to map more addresses, you will have to make multiple calls to the API.
2. A `maximum of 200 public addresses` may be mapped to the User Handle.
3. This SDK API is `free for the first 100 calls` for each User Handle.

## FIO Wallet SDK for mapping User Handles

The  [FIOWallet SDK](https://github.com/PassbirdCo/MetaKeepCodeSamples/blob/main/eos/fio/lib/README.md)  provides a simple way to map the User Handle to the blockchain address. You can find detailed instructions on how to use the SDK [here](https://github.com/PassbirdCo/MetaKeepCodeSamples/blob/main/eos/fio/lib/README.md). The SDK allows you to map `up to 5 blockchain addresses` to the `User Handle` at a time. You can find all supported chains in the [FIO documentation](https://github.com/fioprotocol/fips/blob/master/data/chains.md).

```javascript Map User Handle
const fioWallet = new FIOWallet({
  // Replace with the app-id of your MetaKeep FIO app
  appId: "metakeep_fio_app_id",
  user: {
    // Email of the user
    email: "your_email@example.com",
  },
});

await fioWallet.mapHandle(
  // Replace with the User Handle
  "user_name@your_custom_domain",
  [
    {
      chain: "ETH",
      address: "Replace with the user's Ethereum address",
    },
    {
      chain: "SOL",
      address: "Replace with the user's Solana address",
    },
  ]
);
```

© Copyright 2024, Passbird Research Inc.