Redemption flow
- Privy creates the order as a wallet action with status
pending, and sends the wallet’s shares to WisdomTree. - WisdomTree fills the order. A
secondaryorder fills from the fund’s onchain pool. Aprimaryorder fills at the daily NAV strike. - The status moves to
succeededonce the proceeds reach the wallet.
Usage
To sell fund shares, send aPOST request to:
Parameters
The body describes the order.The number of fund shares to sell, as a decimal string, e.g.
"10.000000".string
required
The currency of the proceeds, e.g.
"USDC". Case-insensitive.string
required
The chain the order trades on. Use
ethereum_sepolia in the sandbox.string
required
The fund ticker, e.g.
"WTGXX". Case-insensitive.'sandbox' | 'production'
The WisdomTree environment the order trades in. Defaults to
production. Use sandbox to test.
See how the sandbox
works.'primary' | 'secondary'
required
How the order fills:
secondary from the fund’s onchain pool, which is faster, or primary
directly with the fund at the next NAV strike.string
Your app’s identifier for the order. Privy returns it on the wallet action.
string
A unique value of at least 24 characters that prevents replaying a signed request.
Wallets with
owner_id present must provide an authorization
signature as a request header.Returns
The endpoint returns the order as a wallet action. It has the same fields as a purchase, with three differences:typeis always"tmmf_withdraw".- In the
wisdomtree_settlementstep,requestedholds the shares sent, e.g.{"fund": "WTGXX", "amount": "10"}. - In the same step,
receivedholds the proceeds, e.g.{"withdraw_asset": "USDC", "amount": "9.99"}.
Example
This request sells 10 WTGXX shares for USDC through the fund’s pool.Example response
Idempotency on errors: This endpoint returns
pending immediately. Replaying the same key
returns the cached response. On a synchronous 5xx, Privy deletes the record so the same key
retries fresh. Action outcomes (rejected, failed, succeeded) arrive via
webhooks and polling. Policy violations
always allow fresh retries.Statuses and failures
A sale has the same statuses and common errors as a purchase. For a sale, the wallet must hold enough shares. Afailed sale means WisdomTree failed or refunded the order after Privy sent the shares (order_refunded).
Next steps
Once the sale succeeds, show the updated position. Use webhooks to follow future orders.List positions
Show the wallet’s shares, their value, and pending orders.
Webhooks
Receive order webhooks when a sale completes.

