Actions APIVaultsSlugMint

Build the approval + deposit transactions for a Nest vault mint.

POST
/vaults/{slug}/mint/build-tx

Path Parameters

slug*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

depositAsset*string

ERC20 address of the deposit asset on the requested chain.

Match^0x[a-fA-F0-9]{40}$
depositAmount*string

Raw base-unit amount of the deposit asset (string for bigint safety).

Match^\d+$
chainId*integer

EVM chain ID. Must be one of the supported chains (Plume=98866, Ethereum=1, Base=8453, BSC=56, Plasma=9745, Avalanche=43114, Arc=5042, Morph=2818, World Chain=480) and must match a chain the vault is deployed on.

Range0 < value
destinationChainId?integer

Receive shares on this chain. Omit or use chainId for a same-chain mint. Only registered composer destinations are supported.

Range0 < value
recipient*string

Destination recipient; required for cross-chain quotes and all builds.

Match^0x[a-fA-F0-9]{40}$
sender?string

Source-chain caller, defaulting to recipient. A cross-chain deposit always represents this account.

Match^0x[a-fA-F0-9]{40}$
minimumShareAmount?string

Minimum raw output shares. Required for cross-chain builds; quotes default to their current net output. Retain the user-approved minimum when rebuilding.

Match^\d+$
complianceVersion?string

Compliance stack used for the deposit calldata. v1 = NestVaultPredicateProxy + Predicate message (default on existing chains; Arc and Morph default to v2); v2 = ComplianceProxy + Predicate V2 attestation (opaque complianceData, supports onBehalf). Defaults to the vault registry setting.

Value in

  • "v1"
  • "v2"
skipSimulation?boolean

Skip the approve + deposit transaction simulation preflight.

Defaultfalse
onBehalf?string

Optional, complianceVersion: "v2" only. Represented end user when sender deposits on behalf of someone else (relayers or aggregators). EVM address or 32-byte hex identifier. The compliance policy screens both sender and onBehalf, and the deposit calldata uses ComplianceProxy.depositOnBehalf.

Match^0x(?:[a-fA-F0-9]{40}|[a-fA-F0-9]{64})$

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/vaults/nest-wisdom-vault/mint/build-tx" \  -H "Content-Type: application/json" \  -d '{    "depositAsset": "0xdddd73f5df1f0dc31373357beac77545dc5a6f3f",    "depositAmount": "1000000",    "chainId": 98866,    "recipient": "0x0000000000000000000000000000000000000001"  }'
{  "data": {    "slug": "string",    "chainId": 0,    "shareTokenAddress": "string",    "depositAsset": "string",    "depositAmount": "string",    "depositDecimals": 0,    "shareAmount": "string",    "shareDecimals": 0,    "feeAmount": "string",    "fees": {      "ratePpm": 0,      "flatAmount": "string",      "maxRatePpm": 0,      "maxFlatAmount": "string"    },    "complianceVersion": "v1",    "transactions": [      {        "complianceExpiresAt": 1,        "label": "approve",        "description": "string",        "to": "string",        "data": "string",        "value": "string"      }    ],    "bridge": {      "sourceChainId": 0,      "destinationChainId": 0,      "destinationEid": 0,      "composerAddress": "string",      "sourceOftAddress": "string",      "destinationOftAddress": "string",      "depositAsset": "string",      "minimumShareAmount": "string",      "nativeFee": "string"    }  }}