> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spherepay.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Register Crypto Wallets for Stablecoin Transfers

> Link a customer's existing blockchain wallet address to SpherePay to enable on-ramp and off-ramp transfers across supported stablecoin networks.

A wallet in SpherePay is a registration of your customer's existing blockchain wallet address. SpherePay does not create or custody wallets — it links an address your customer already owns to their SpherePay profile so transfers can be routed to or from that address. You must register at least one wallet before creating any on-ramp or off-ramp transfer that involves crypto.

<Note>
  SpherePay registers an existing wallet address — it does not generate or host a new wallet on your customer's behalf. The address must already exist on the target network before registration.
</Note>

## Register a wallet

`POST https://api.spherepay.co/v2/wallet`

For the full request and response schema, see the [Create Wallet API reference](/api-reference/wallet/post).

## Supported networks

| Network   | Network Code | USDC | USDT | EURC |
| --------- | ------------ | ---- | ---- | ---- |
| Solana    | `sol`        | ✅    | —    | ✅    |
| Ethereum  | `ethereum`   | ✅    | ✅    | ✅    |
| Tron      | `tron`       | —    | ✅    | —    |
| Polygon   | `polygon`    | ✅    | ✅    | —    |
| Base      | `base`       | ✅    | —    | ✅    |
| Arbitrum  | `arbitrum`   | ✅    | —    | —    |
| Avalanche | `avalanche`  | ✅    | —    | —    |
| Starknet  | `starknet`   | ✅    | —    | —    |

<Note>
  Solana is not supported as the destination network for BRL/PIX on-ramp transfers. Use `polygon`, `ethereum`, `base`, or `tron` when the source currency is BRL. See [BRL/PIX transfer constraints](/concepts/transfers/overview#brlpix-transfer-constraints).
</Note>

## Request example

Pass the customer ID, the network code, and the on-chain address to register the wallet.

```json theme={"dark"}
{
  "customerId": "customer_1234567890",
  "network": "sol",
  "address": "0x1234567890123456789012345678901234567890"
}
```

## Response example

```json theme={"dark"}
{
  "id": "wallet_1234567890",
  "address": "0x1234567890123456789012345678901234567890",
  "network": "sol",
  "customerId": "customer_1234567890",
  "created": "2026-01-25T12:00:00.000Z",
  "updated": "2026-01-25T12:00:00.000Z"
}
```

## Using the returned ID

The returned `id` is your persistent reference to this wallet. Store it against the customer record and pass it as the `source.id` or `destination.id` when creating transfers. You do not need to re-register the same address for subsequent transfers — reuse the stored `id`.
