Notus API
Funds

Quote a fund redeem

Creates a UserOperation to redeem shares from a curated Enzyme vault. Enzyme Blue first redeems into the denomination asset with redeemSharesForSpecificAssets. If that call reverts because the vault does not hold enough of the denomination asset, it redeems in kind with redeemSharesInKind and swaps every received asset into the denomination asset, charging no Notus fee on those swaps. The FUND_REDEEM fee is still taken from the denomination asset. Enzyme Onyx async settles as queued (approve + requestRedeem) and takes the fee from vault shares. Optional gasFeePaymentMethod controls whether gas is added on top of or deducted from the matching asset. Execute with the existing crypto execute-user-op endpoint.

POST
/api/v1/fund/{fundId}/redeem/quote

Authorization

x-api-key
x-api-key<token>

In: header

Path Parameters

fundId*string

Fund UUID or slug

Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/v1/fund/targen-vertex/redeem/quote" \  -H "Content-Type: application/json" \  -d '{    "walletAddress": "0x6E397DDf51D9f15DbE0414538e7529f51f2E5464",    "sharesAmount": "50.00",    "payGasFeeToken": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"  }'
{  "metadata": {    "key": "value"  },  "userOperationHash": "0x2aac7a66d5331454eafc9b981be3596ad08a40dad24883e3b9c4a5362cd7f7e1",  "revertReason": {    "decoded": "ERC-20 insufficient balance. Address 0xf12534a4939c7fbda50f893774a9525265fe1a9a has 120. The operation requested 200.",    "raw": "0xe450d38c000000000000000000000000f12534a4939c7fbda50f893774a9525265fe1a9a0000000000000000000000000000000000000000000000068155a43676e0000000000000000000000000000000000000000000000000000ad78ebc5ac6200000",    "utf8": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000�%4�����\u000f�7t�RRe�\u001a�\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0006�U�6v�\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\n׎�Z� \u0000\u0000"  },  "authorization": {    "chainId": 42161,    "address": "0xd6cedde84be40893d153be9d467cd6ad37875b28",    "nonce": 10,    "hash": "0x777811ae5d51875409b9978ddc1b40a9da1bbe9570040bdd7c5f186d70ceceba"  },  "walletAddress": "0x6E397DDf51D9f15DbE0414538e7529f51f2E5464",  "expiresAt": "2026-07-31T15:00:00.000Z",  "amounts": {    "in": [      {        "token": {          "name": "USD Coin",          "symbol": "USDC",          "decimals": 6,          "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",          "logoURL": "https://assets.notus.team/usdc.png"        },        "amount": "50.00"      }    ],    "out": [      {        "token": {          "name": "USD Coin",          "symbol": "USDC",          "decimals": 6,          "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",          "logoURL": "https://assets.notus.team/usdc.png"        },        "minAmount": "50.66",        "expectedAmount": "51.17"      }    ]  },  "fees": [    {      "amount": "100.5",      "token": "0x1234567890123456789012345678901234567890",      "toAddress": "0x1234567890123456789012345678901234567890",      "type": "NOTUS",      "percentage": "2"    }  ],  "estimatedGasFees": {    "payGasFeeToken": "0xc2132d05d31c914a87c6611c10748aeb04b58e8f",    "gasFeeTokenAmount": "12.345",    "gasFeeTokenAmountUSD": "0.321",    "maxGasFeeNative": "string"  },  "chain": {    "id": 137,    "name": "POLYGON",    "logo": "https://logopolygon.com"  },  "vaultProvider": "ENZYME_BLUE",  "fundId": "f1e2d3c4-b5a6-9780-1234-567890abcdef",  "vaultAddress": "0x58783f682Bd1ea0D11e1187e28445D3185B6A173",  "settlementMode": "SYNC",  "settlement": "immediate"}