Core APIReferenceSolanaNest

/solana/nest/mint/build-tx

Returns a base64 transaction to initiate a Nest vault mint. Deposits USDC from Solana to mint Nest share tokens, which are delivered to the receiver's Solana wallet. The transaction includes: (1) Creating the receiver's Nest share token ATA if it doesn't exist, (2) Creating the CCTP MessageSent event data account (rent funded by Nest keeper), (3) CCTP depositForBurn instruction to bridge USDC to Plume. On Plume, the NestVaultComposer receives the USDC, mints vault shares, and sends them back to the receiver via LayerZero OFT. The transaction is pre-signed by the Nest keeper and ephemeral event account. The caller signs with the receiver wallet and, for sponsored transactions, the fee payer wallet. Sponsored transactions require the receiver's Nest share ATA to already exist; a sponsor can create it in a separate idempotent ATA transaction without a receiver signature.

POST
/solana/nest/mint/build-tx

Returns a base64 transaction to initiate a Nest vault mint. Deposits USDC from Solana to mint Nest share tokens, which are delivered to the receiver's Solana wallet.

The transaction includes: (1) Creating the receiver's Nest share token ATA if it doesn't exist, (2) Creating the CCTP MessageSent event data account (rent funded by Nest keeper), (3) CCTP depositForBurn instruction to bridge USDC to Plume.

On Plume, the NestVaultComposer receives the USDC, mints vault shares, and sends them back to the receiver via LayerZero OFT. The transaction is pre-signed by the Nest keeper and ephemeral event account. The caller signs with the receiver wallet and, for sponsored transactions, the fee payer wallet. Sponsored transactions require the receiver's Nest share ATA to already exist; a sponsor can create it in a separate idempotent ATA transaction without a receiver signature.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

rawAmountUsdc?integer

Amount of USDC to deposit, in raw base units (6 decimals). For example, 1000000 (1e6) represents 1.0 USDC.

Range0 < value
amountUsdc?integer
Deprecated

DEPRECATED: Use rawAmountUsdc instead. Amount of USDC in raw base units (6 decimals).

Range0 < value
finality?string

CCTP finality mode. 'fast' (~1-2 min) has higher fees, 'standard' (~15 min) has lower fees.

Default"standard"

Value in

  • "fast"
  • "standard"
nestVaultSlug*string

Slug identifying the Nest vault. Valid options: nest-alpha-vault, nest-treasury-vault, nest-basis-vault, nest-wisdom-vault, nest-opal-vault, nest-test-vault, nest-scope-vault, nest-lcrd-vault, nest-perena-vault, nest-falconx-clo, nest-cloa-vault, plume-factor-vault.

receiver*string

Base58-encoded Solana public key of the user who will receive the minted Nest share tokens and provide the USDC burn authority. This wallet pays transaction fees unless feePayer is provided.

Length1 <= length
feePayer?string

Optional base58-encoded Solana public key of a sponsor/relayer that will be the transaction fee payer. When provided, the receiver remains the USDC owner and Nest share receiver. For first-time receivers, the sponsor should pre-create the receiver's Nest share ATA before requesting the mint transaction.

Length1 <= length
priorityFee?string

Optional dynamic priority fee level. The API fetches recent prioritization fees for all transaction accounts and selects low/median/high.

Value in

  • "low"
  • "medium"
  • "high"
priorityFeeMaxLamports?integer

Optional maximum total priority fee in lamports. If provided, it takes precedence over priorityFee.

Range0 <= value

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/solana/nest/mint/build-tx" \  -H "Content-Type: application/json" \  -d '{    "nestVaultSlug": "nest-alpha-vault",    "receiver": "CFagSTMBFiMaD4YKHr7mMcKTzpi35DqiBKbDA35BvZgr"  }'
{  "data": {    "txBase64": "string"  }}