---
title: "Register a wallet with a tMMF provider"
method: POST
path: "/v1/wallets/{wallet_id}/earn/tmmf/register"
tags: ["Wallet Actions"]
---

# Register a wallet with a tMMF provider

`POST /v1/wallets/{wallet_id}/earn/tmmf/register`

## Request

- Base URL: `https://api.privy.io`
- URL: `https://api.privy.io/v1/wallets/{wallet_id}/earn/tmmf/register`
- Auth: HTTP basic

Registers the wallet with a tMMF provider on one chain. The provider must have approved the wallet's user, e.g. an organization; the response reports whether it also approved the wallet.

## Path parameters

- `wallet_id` string, required: ID of the wallet.

## Headers

- `privy-app-id` string, required: ID of your Privy app.

## Request body

- TmmfRegisterRequestBody: Request body for registering a wallet with a tMMF provider for the wallet's user, e.g. an organization.
  - `provider` union, required: The fund provider.
    - 'wisdomtree'
    - string
  - `chain` string, required: Chain the fund is held on, e.g. "ethereum_sepolia".

## Response `200`

Wallet registered; the provider approved it and it can trade.

- TmmfWalletResponse: A Privy wallet registered for a user with one tMMF provider on one chain.
  - `wallet_id` string, required: ID of the Privy wallet registered to trade and hold fund shares.
  - `address` string, required: Blockchain address of the registered wallet.
  - `provider` union, required: The fund provider.
    - 'wisdomtree'
    - string
  - `chain` string, required: Chain the wallet is registered on, e.g. "base".
  - `status` union, required: A registered wallet's status with its tMMF provider, read live from the provider.
    - 'created' | 'approved' | 'rejected'
    - string
  - `user_id` string, required: ID of the Privy user the wallet is registered for.
  - `created_at` integer, required: Unix timestamp in milliseconds when the wallet registration was created.
  - `updated_at` integer, required: Unix timestamp in milliseconds when the wallet registration was last updated.

## Other responses

- `202`: Wallet registered; it cannot trade until the provider approves it.
- `403`: tMMF is not enabled for the app, or the provider rejected the wallet.
- `409`: The wallet's user has the maximum number of wallets registered with the provider, or another Privy wallet is registered with this address at the provider.

## Changes

- **2026-11-04** `92cd740c9dc9`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/privy-io/apis/privy-api/changes/v1/wallets/:wallet_id/earn/tmmf/register/post.md)

---

[API](https://skmtc.dev/privy-io/apis/privy-api.md) - [All operations](https://skmtc.dev/privy-io/apis/privy-api/llms.txt) - [OpenAPI document](https://skmtc.dev/privy-io/apis/privy-api/revisions/393bfc513654?raw)
