---
title: "Buy tMMF shares"
method: POST
path: "/v1/wallets/{wallet_id}/earn/tmmf/deposit"
tags: ["Wallet Actions"]
---

# Buy tMMF shares

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

## Request

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

Sends `deposit_asset` from the registered wallet to the fund provider and tracks delivery of the shares as a wallet action. The wallet owner or signers authorize the request.

## Path parameters

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

## Headers

- `privy-app-id` string, required: ID of your Privy app.
- `privy-authorization-signature` string: Request authorization signature. If multiple signatures are required, they should be comma separated.
- `privy-request-expiry` string: Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed.
- `privy-idempotency-key` string: Idempotency keys ensure API requests are executed only once within a 24-hour window.

## Request body

- TmmfDepositRequestBody: Request body for buying tMMF shares with a currency the wallet holds.
  - `nonce` string: Unique caller-generated nonce used to prevent replaying a signed wallet action request. Must be at least 24 characters (e.g. a cuid2 or UUID).
  - `amount` string, required: Amount of `deposit_asset` to invest, e.g. "1000.00".
  - `deposit_asset` string, required: Currency the wallet sends, e.g. "USDC".
  - `chain` string, required: Chain the fund is held on, e.g. "ethereum_sepolia".
  - `fund` string, required: Fund ticker, e.g. "WTGXX". Case-insensitive.
  - `order_type` 'primary' | 'secondary', required: How a tMMF order fills: `secondary` from the provider pool in minutes, or `primary` at the next NAV strike.
  - `reference_id` string: Developer-provided identifier for this request. Must be unique per app.

## Response `200`

Purchase accepted: the pending wallet action.

- TmmfDepositActionResponse: A tokenized money market fund (tMMF) deposit.
  - `id` string, required: The ID of the wallet action.
  - `status` 'pending' | 'succeeded' | 'rejected' | 'failed', required: The current status of the wallet action.
  - `wallet_id` string, required: The ID of the wallet involved in the action.
  - `created_at` string, date-time, required: ISO 8601 timestamp of when the wallet action was created.
  - `reference_id` string, nullable: Developer-provided reference ID, if one was included in the request.
  - `failure_reason` object: Top-level failure context for the wallet action. Present on rejected or failed actions when available.
    - `message` string, required: Human-readable failure message.
    - `details` unknown
  - `steps` WalletActionStep[]: The steps of the wallet action. Only returned if `?include=steps` is provided.
    - union: A step within a wallet action, representing a single onchain action.
      - object: A wallet action step consisting of an EVM transaction.
        - `type` 'evm_transaction', required
        - `failure_reason` FailureReason: A description of why a wallet action (or a step within a wallet action) failed.
          - `message` string, required: Human-readable failure message.
          - `details` unknown
        - `finalized` boolean: Whether this step has reached on-chain finality. Absent until finality is confirmed.
        - `gas_credits_charged` CurrencyAmount: A monetary value with its currency denomination.
          - `value` string, required: The monetary value as a string.
          - `currency` 'usd', required: Currency code
        - `gas_credits_charged_usd` string, nullable: Deprecated, use `gas_credits_charged` instead; gas credits charged in USD for this step, if sponsored, as a decimal string.
        - `status` 'preparing' | 'queued' | 'pending' | 'retrying' | 'confirmed' | 'rejected' | 'reverted' | 'replaced' | 'abandoned', required: EVM transaction status.
        - `caip2` string, required: CAIP-2 chain identifier of the transaction, containing the chain ID.
        - `transaction_hash` string, nullable, required: The transaction hash for this step. May change while the step status is non-terminal.
      - object: A wallet action step consisting of an EVM user operation.
        - `type` 'evm_user_operation', required
        - `failure_reason` FailureReason: A description of why a wallet action (or a step within a wallet action) failed.
          - `message` string, required: Human-readable failure message.
          - `details` unknown
        - `finalized` boolean: Whether this step has reached on-chain finality. Absent until finality is confirmed.
        - `gas_credits_charged` CurrencyAmount: A monetary value with its currency denomination.
          - `value` string, required: The monetary value as a string.
          - `currency` 'usd', required: Currency code
        - `gas_credits_charged_usd` string, nullable: Deprecated, use `gas_credits_charged` instead; gas credits charged in USD for this step, if sponsored, as a decimal string.
        - `status` 'preparing' | 'queued' | 'pending' | 'retrying' | 'confirmed' | 'rejected' | 'reverted' | 'replaced' | 'abandoned', required: User operation status.
        - `user_operation_hash` string, nullable, required: The user operation hash for this step. May change while the step status is non-terminal.
        - `bundle_transaction_hash` string, nullable, required: Transaction hash of the bundle in which this user operation was included. Null until included by a bundler.
        - `caip2` string, required: CAIP-2 network identifier, containing the chain ID of the user operation.
        - `entrypoint_version` '0.6' | '0.7' | '0.8' | '0.9', required: The entrypoint version of the user operation.
      - object: A wallet action step consisting of an SVM (Solana) transaction.
        - `type` 'svm_transaction', required
        - `failure_reason` FailureReason: A description of why a wallet action (or a step within a wallet action) failed.
          - `message` string, required: Human-readable failure message.
          - `details` unknown
        - `finalized` boolean: Whether this step has reached on-chain finality. Absent until finality is confirmed.
        - `gas_credits_charged` CurrencyAmount: A monetary value with its currency denomination.
          - `value` string, required: The monetary value as a string.
          - `currency` 'usd', required: Currency code
        - `gas_credits_charged_usd` string, nullable: Deprecated, use `gas_credits_charged` instead; gas credits charged in USD for this step, if sponsored, as a decimal string.
        - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'reverted' | 'failed', required: SVM transaction status.
        - `caip2` string, required: CAIP-2 chain identifier for the Solana network.
        - `transaction_signature` string, nullable, required: The Solana transaction signature (base58-encoded). Null until broadcast.
      - object: A wallet action step consisting of a TVM (Tron) transaction.
        - `type` 'tvm_transaction', required
        - `failure_reason` FailureReason: A description of why a wallet action (or a step within a wallet action) failed.
          - `message` string, required: Human-readable failure message.
          - `details` unknown
        - `gas_credits_charged` CurrencyAmount: A monetary value with its currency denomination.
          - `value` string, required: The monetary value as a string.
          - `currency` 'usd', required: Currency code
        - `gas_credits_charged_usd` string, nullable: Deprecated, use `gas_credits_charged` instead; gas credits charged in USD for this step, if sponsored, as a decimal string.
        - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'reverted' | 'failed', required: TVM transaction status.
        - `caip2` string, required: CAIP-2 chain identifier for the Tron network.
        - `transaction_id` string, nullable, required: The Tron transaction ID. Null until broadcast.
      - object: A wallet action step representing a cross-chain/cross-asset fill by an external provider.
        - `type` 'external_transaction', required
        - `failure_reason` FailureReason: A description of why a wallet action (or a step within a wallet action) failed.
          - `message` string, required: Human-readable failure message.
          - `details` unknown
        - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'failed', required: External transaction step status.
        - `provider` union, required: External provider that fills an external transaction step.
          - 'relay' | 'tempo_routes' | 'bridge'
          - string
      - object: A wallet action step representing a transaction executed by a custodian (e.g. Bridge).
        - `type` 'custodian_transaction', required
        - `failure_reason` FailureReason: A description of why a wallet action (or a step within a wallet action) failed.
          - `message` string, required: Human-readable failure message.
          - `details` unknown
        - `status` 'preparing' | 'queued' | 'custodian_reviewing' | 'pending' | 'confirmed' | 'rejected' | 'failed', required: Custodian transaction step status.
        - `custodian` string, required: Identifier of the custodian executing this transaction (e.g. "bridge").
        - `transaction_hash` string, nullable, required: Identifier of the transaction the custodian last reported on the destination chain. Set on a settled transfer, and also on a failed one when the custodian had already broadcast a payout that was later returned. Null until the custodian reports one.
      - object: A wallet action step representing a Tempo Zone settlement on its parent chain.
        - `type` 'tempo_zone_settlement', required
        - `failure_reason` FailureReason: A description of why a wallet action (or a step within a wallet action) failed.
          - `message` string, required: Human-readable failure message.
          - `details` unknown
        - `caip2` string, nullable, required: CAIP-2 identifier of the Tempo parent chain, or null when unavailable.
        - `transaction_hash` string, required: A hex-encoded string prefixed with '0x', capped at 300002 characters (150,000 bytes).
        - `status` 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'failed', required: Tempo Zone settlement step status.
      - object: A wallet action step representing the settlement of a tokenized money market fund (tMMF) order by WisdomTree.
        - `type` 'wisdomtree_settlement', required
        - `failure_reason` FailureReason: A description of why a wallet action (or a step within a wallet action) failed.
          - `message` string, required: Human-readable failure message.
          - `details` unknown
        - `status` union, required
          - 'preparing' | 'queued' | 'pending' | 'confirmed' | 'rejected' | 'failed': WisdomTree settlement step status.
          - string: WisdomTree settlement step status.
        - `caip2` string, nullable, required: CAIP-2 identifier of the chain the order trades on.
        - `order_type` 'primary' | 'secondary', required: How a tMMF order fills: `secondary` from the provider pool in minutes, or `primary` at the next NAV strike.
        - `requested` union, required: What a tMMF order sends: the deposit asset for a deposit, fund shares for a withdrawal.
          - object: An amount of the currency a tMMF deposit sends.
            - `deposit_asset` string, required: Currency symbol, e.g. "USDC". Case-insensitive.
            - `amount` string, required: A positive decimal amount in the asset's standard unit, e.g. "1000.00".
          - object: An amount of fund shares a tMMF order sends or receives.
            - `fund` string, required: Fund ticker, e.g. "WTGXX". Case-insensitive.
            - `amount` string, required: A positive decimal amount in the asset's standard unit, e.g. "1000.00".
        - `received` union, required: What a tMMF order receives: fund shares for a deposit, the withdraw asset for a withdrawal.
          - object: An amount of fund shares a tMMF order sends or receives.
            - `fund` string, required: Fund ticker, e.g. "WTGXX". Case-insensitive.
            - `amount` string, required: A positive decimal amount in the asset's standard unit, e.g. "1000.00".
          - object: An amount of the currency a tMMF withdrawal receives.
            - `withdraw_asset` string, required: Currency symbol, e.g. "USDC". Case-insensitive.
            - `amount` string, required: A positive decimal amount in the asset's standard unit, e.g. "1000.00".
        - `settlement_transaction_hash` string, nullable, required: The transaction that delivered the received asset. Null until Privy verifies the settlement.
  - `type` 'tmmf_deposit', required

## Other responses

- `403`: tMMF is not enabled for the app.

## Changes

- **2026-11-06** `34a17702d072`: 4 info
  - removed `#/components/schemas/WisdomTreeSettlementReceivedAmount, subschema #2` from the `steps/items/oneOf[subschema #8: WisdomTreeSettlementWalletActionStep]/received` response property `allOf` list for the response status `200`
  - removed `#/components/schemas/WisdomTreeSettlementRequestedAmount, subschema #2` from the `steps/items/oneOf[subschema #8: WisdomTreeSettlementWalletActionStep]/requested` response property `allOf` list for the response status `200`
  - added `#/components/schemas/WisdomTreeSettlementReceivedAmount, subschema #2` to the `steps/items/oneOf[subschema #8: WisdomTreeSettlementWalletActionStep]/received` response property `anyOf` list for the response status `200`
  - added `#/components/schemas/WisdomTreeSettlementRequestedAmount, subschema #2` to the `steps/items/oneOf[subschema #8: WisdomTreeSettlementWalletActionStep]/requested` response property `anyOf` list for the response status `200`
- **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/deposit/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)
