{"openapi":"3.0.0","info":{"title":"EVM Actions API","version":"1.0.0"},"servers":[{"url":"https://api.nest.credit/v1/actions","description":"EVM Actions API Server"}],"components":{"schemas":{"MintRequestBody":{"type":"object","properties":{"depositAsset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"ERC20 address of the deposit asset on the requested chain.","example":"0xdddd73f5df1f0dc31373357beac77545dc5a6f3f"},"depositAmount":{"type":"string","pattern":"^\\d+$","description":"Raw base-unit amount of the deposit asset (string for bigint safety).","example":"1000000"},"chainId":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"EVM chain ID. Must be one of the supported chains (Plume=98866, Ethereum=1, BSC=56, Plasma=9745, Arbitrum=42161) and must match a chain the vault is deployed on.","example":98866}},"required":["depositAsset","depositAmount","chainId"]},"MintTransaction":{"type":"object","properties":{"label":{"type":"string","enum":["approve","deposit"]},"description":{"type":"string"},"to":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"data":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"value":{"type":"string","enum":["0"]}},"required":["label","description","to","data","value"]},"BuildMintTxRequestBody":{"allOf":[{"$ref":"#/components/schemas/MintRequestBody"},{"type":"object","properties":{"recipient":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Recipient of the minted shares (also used as the EVM depositor).","example":"0x0000000000000000000000000000000000000001"},"skipSimulation":{"type":"boolean","default":false,"description":"Skip the approve + deposit transaction simulation preflight.","example":false}},"required":["recipient"]}]},"RedeemRequestBody":{"type":"object","properties":{"redemptionAsset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"ERC20 address of the desired redemption asset on the requested chain.","example":"0x222365ef19f7947e5484218551b56bb3965aa7af"},"shareAmount":{"type":"string","pattern":"^\\d+$","description":"Raw base-unit amount of vault shares to redeem (string for bigint safety).","example":"1000000"},"chainId":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"EVM chain ID. Must be one of the supported chains (Plume=98866, Ethereum=1, BSC=56, Plasma=9745, Arbitrum=42161) and must match a chain the vault is deployed on.","example":98866}},"required":["redemptionAsset","shareAmount","chainId"]},"RedeemTransaction":{"type":"object","properties":{"label":{"type":"string","enum":["approve","requestRedeem","updateAtomicRequest"]},"description":{"type":"string"},"to":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"data":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"value":{"type":"string","enum":["0"]}},"required":["label","description","to","data","value"]},"BuildRedeemTxRequestBody":{"allOf":[{"$ref":"#/components/schemas/RedeemRequestBody"},{"type":"object","properties":{"user":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"User/controller address submitting the redemption.","example":"0x00000000000000000000000000000000000000ab"},"skipSimulation":{"type":"boolean","default":false,"description":"Skip the transaction simulation preflight.","example":false}},"required":["user"]}]},"PendingRedeemRequestBody":{"type":"object","properties":{"redemptionAsset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"ERC20 address of the desired redemption asset on the requested chain.","example":"0x222365ef19f7947e5484218551b56bb3965aa7af"},"chainId":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"EVM chain ID. Must be one of the supported chains and must match a chain the vault is deployed on.","example":98866},"user":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"User/controller address whose current pending redemption should be read.","example":"0x00000000000000000000000000000000000000ab"}},"required":["redemptionAsset","chainId","user"]},"UpdateRedeemTransaction":{"type":"object","properties":{"label":{"type":"string","enum":["updateRedeem","updateAtomicRequest"]},"description":{"type":"string"},"to":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"data":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"value":{"type":"string","enum":["0"]}},"required":["label","description","to","data","value"]},"BuildUpdateRedeemTxRequestBody":{"allOf":[{"$ref":"#/components/schemas/PendingRedeemRequestBody"},{"type":"object","properties":{"newShareAmount":{"type":"string","pattern":"^\\d+$","description":"Raw base-unit final pending-share total after the reduction.","example":"500000"},"skipSimulation":{"type":"boolean","default":false,"description":"Skip the transaction simulation preflight.","example":false}},"required":["newShareAmount"]}]},"ClaimRequestBody":{"type":"object","properties":{"redemptionAsset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"ERC20 address of the redemption asset used to select the NestVault on the requested chain.","example":"0x222365ef19f7947e5484218551b56bb3965aa7af"},"chainId":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"EVM chain ID. Must be one of the supported chains and must match a chain the vault is deployed on.","example":98866},"user":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"User/controller address whose claimable redemption shares should be read or claimed.","example":"0x00000000000000000000000000000000000000ab"}},"required":["redemptionAsset","chainId","user"]},"ClaimTransaction":{"type":"object","properties":{"label":{"type":"string","enum":["claimRedeem"]},"description":{"type":"string"},"to":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"data":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"value":{"type":"string","enum":["0"]}},"required":["label","description","to","data","value"]},"BuildClaimTxRequestBody":{"allOf":[{"$ref":"#/components/schemas/ClaimRequestBody"},{"type":"object","properties":{"skipSimulation":{"type":"boolean","default":false,"description":"Skip the claim transaction simulation preflight.","example":false}}}]},"InstantRedeemRequestBody":{"type":"object","properties":{"redemptionAsset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"ERC20 address of the desired instant redemption asset on the requested chain.","example":"0x222365ef19f7947e5484218551b56bb3965aa7af"},"shareAmount":{"type":"string","pattern":"^\\d+$","description":"Raw base-unit amount of vault shares to instant-redeem (string for bigint safety).","example":"1000000"},"chainId":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"EVM chain ID. Must be supported and must match a chain the vault is deployed on.","example":98866}},"required":["redemptionAsset","shareAmount","chainId"]},"InstantRedeemLiquidityRequestBody":{"type":"object","properties":{"redemptionAsset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"ERC20 address of the desired instant redemption asset on the requested chain.","example":"0x222365ef19f7947e5484218551b56bb3965aa7af"},"chainId":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"EVM chain ID. Must be supported and must match a chain the vault is deployed on.","example":98866}},"required":["redemptionAsset","chainId"]},"InstantRedeemTransaction":{"type":"object","properties":{"label":{"type":"string","enum":["approve","instantRedeem"]},"description":{"type":"string"},"to":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"data":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"value":{"type":"string","enum":["0"]}},"required":["label","description","to","data","value"]},"BuildInstantRedeemTxRequestBody":{"allOf":[{"$ref":"#/components/schemas/InstantRedeemRequestBody"},{"type":"object","properties":{"user":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"User/owner address instant-redeeming shares.","example":"0x00000000000000000000000000000000000000ab"},"receiver":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Optional receiver of redeemed assets. Defaults to user.","example":"0x00000000000000000000000000000000000000ab"},"skipSimulation":{"type":"boolean","default":false,"description":"Skip the transaction simulation preflight.","example":false}},"required":["user"]}]},"AutoClaimTransaction":{"type":"object","properties":{"label":{"type":"string","enum":["setOperator"]},"description":{"type":"string"},"to":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"data":{"type":"string","pattern":"^0x[a-fA-F0-9]*$"},"value":{"type":"string","enum":["0"]}},"required":["label","description","to","data","value"]},"BuildAutoClaimTxRequestBody":{"allOf":[{"$ref":"#/components/schemas/AutoClaimRequestBody"},{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether the redeem operator should be approved for the user.","example":true},"skipSimulation":{"type":"boolean","default":false,"description":"Skip the setOperator transaction simulation preflight.","example":false}},"required":["enabled"]}]},"AutoClaimRequestBody":{"type":"object","properties":{"chainId":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"EVM chain ID. Must be one of the supported chains (Plume=98866, Ethereum=1, BSC=56, Plasma=9745, Arbitrum=42161).","example":98866},"user":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"User/controller address whose redeem operator approval is being managed.","example":"0x00000000000000000000000000000000000000ab"}},"required":["chainId","user"]},"AutoClaimStatusRequestBody":{"type":"object","properties":{"chainId":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"EVM chain ID. Must be one of the supported chains (Plume=98866, Ethereum=1, BSC=56, Plasma=9745, Arbitrum=42161).","example":98866},"user":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"User/controller address whose redeem operator approval is being managed.","example":"0x00000000000000000000000000000000000000ab"}},"required":["chainId","user"]}},"parameters":{}},"paths":{"/vaults/{slug}/mint/quote":{"post":{"tags":["vaults"],"summary":"Quote the share amount for a deposit into a Nest vault.","parameters":[{"schema":{"type":"string","minLength":1,"example":"nest-wisdom-vault"},"required":true,"name":"slug","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MintRequestBody"}}}},"responses":{"200":{"description":"Quote computed successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"slug":{"type":"string"},"shareTokenAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"depositAsset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"depositAmount":{"type":"string"},"depositDecimals":{"type":"number"},"shareAmount":{"type":"string"},"shareDecimals":{"type":"number"},"rate":{"type":"string"},"rateDecimals":{"type":"number"},"feeAmount":{"type":"string"},"fees":{"type":"object","properties":{"ratePpm":{"type":"number"},"flatAmount":{"type":"string"},"maxRatePpm":{"type":"number"},"maxFlatAmount":{"type":"string"}},"required":["ratePpm","flatAmount","maxRatePpm","maxFlatAmount"]},"steps":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","enum":["approve","deposit"]},"description":{"type":"string"}},"required":["label","description"]}}},"required":["slug","shareTokenAddress","depositAsset","depositAmount","depositDecimals","shareAmount","shareDecimals","rate","rateDecimals","feeAmount","fees","steps"]}},"required":["data"]}}}},"400":{"description":"Invalid request, unsupported vault/asset, or deposit too small to mint any shares.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}},"500":{"description":"Internal error (RPC failure, etc.).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}}}}},"/vaults/{slug}/mint/build-tx":{"post":{"tags":["vaults"],"summary":"Build the approval + deposit transactions for a Nest vault mint.","parameters":[{"schema":{"type":"string","minLength":1,"example":"nest-wisdom-vault"},"required":true,"name":"slug","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildMintTxRequestBody"}}}},"responses":{"200":{"description":"Transaction bundle built successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"slug":{"type":"string"},"chainId":{"type":"number"},"shareTokenAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"depositAsset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"depositAmount":{"type":"string"},"depositDecimals":{"type":"number"},"shareAmount":{"type":"string"},"shareDecimals":{"type":"number"},"feeAmount":{"type":"string"},"fees":{"type":"object","properties":{"ratePpm":{"type":"number"},"flatAmount":{"type":"string"},"maxRatePpm":{"type":"number"},"maxFlatAmount":{"type":"string"}},"required":["ratePpm","flatAmount","maxRatePpm","maxFlatAmount"]},"transactions":{"type":"array","items":{"$ref":"#/components/schemas/MintTransaction"}}},"required":["slug","chainId","shareTokenAddress","depositAsset","depositAmount","depositDecimals","shareAmount","shareDecimals","feeAmount","fees","transactions"]}},"required":["data"]}}}},"400":{"description":"Invalid request, unsupported vault/asset, caller non-compliant, or deposit too small.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}},"500":{"description":"Internal error (RPC, Predicate service, etc.).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}}}}},"/vaults/{slug}/redeem/quote":{"post":{"tags":["vaults"],"summary":"Quote the redemption asset amount for a vault share redemption.","parameters":[{"schema":{"type":"string","minLength":1,"example":"nest-wisdom-vault"},"required":true,"name":"slug","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedeemRequestBody"}}}},"responses":{"200":{"description":"Redemption quote computed successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"slug":{"type":"string"},"chainId":{"type":"number"},"redemptionType":{"type":"string","enum":["nest","atomicQueue"]},"shareTokenAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"redemptionAsset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"shareAmount":{"type":"string"},"shareDecimals":{"type":"number"},"redemptionAmount":{"type":"string"},"redemptionDecimals":{"type":"number"},"feeAmount":{"type":"string"},"fees":{"type":"object","properties":{"ratePpm":{"type":"number"},"flatAmount":{"type":"string"},"maxRatePpm":{"type":"number"},"maxFlatAmount":{"type":"string"}},"required":["ratePpm","flatAmount","maxRatePpm","maxFlatAmount"]},"minPrice":{"type":"string"},"deadline":{"type":"string"},"rate":{"type":"string"},"rateDecimals":{"type":"number"},"steps":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","enum":["approve","requestRedeem","updateAtomicRequest"]},"description":{"type":"string"}},"required":["label","description"]}}},"required":["slug","chainId","redemptionType","shareTokenAddress","redemptionAsset","shareAmount","shareDecimals","redemptionAmount","redemptionDecimals","feeAmount","fees","steps"]}},"required":["data"]}}}},"400":{"description":"Invalid request, unsupported vault/asset, or share amount too small.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}},"500":{"description":"Internal error (RPC failure, etc.).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}}}}},"/vaults/{slug}/redeem/build-tx":{"post":{"tags":["vaults"],"summary":"Build transactions to submit a vault redemption request.","parameters":[{"schema":{"type":"string","minLength":1,"example":"nest-wisdom-vault"},"required":true,"name":"slug","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildRedeemTxRequestBody"}}}},"responses":{"200":{"description":"Transaction bundle built successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"slug":{"type":"string"},"chainId":{"type":"number"},"redemptionType":{"type":"string","enum":["nest","atomicQueue"]},"shareTokenAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"redemptionAsset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"shareAmount":{"type":"string"},"shareDecimals":{"type":"number"},"redemptionAmount":{"type":"string"},"redemptionDecimals":{"type":"number"},"feeAmount":{"type":"string"},"fees":{"type":"object","properties":{"ratePpm":{"type":"number"},"flatAmount":{"type":"string"},"maxRatePpm":{"type":"number"},"maxFlatAmount":{"type":"string"}},"required":["ratePpm","flatAmount","maxRatePpm","maxFlatAmount"]},"minPrice":{"type":"string"},"deadline":{"type":"string"},"transactions":{"type":"array","items":{"$ref":"#/components/schemas/RedeemTransaction"}}},"required":["slug","chainId","redemptionType","shareTokenAddress","redemptionAsset","shareAmount","shareDecimals","redemptionAmount","redemptionDecimals","feeAmount","fees","transactions"]}},"required":["data"]}}}},"400":{"description":"Invalid request, unsupported vault/asset, share amount too small, or failed simulation.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}},"500":{"description":"Internal error (RPC failure, etc.).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}}}}},"/vaults/{slug}/update-redeem/pending":{"post":{"tags":["vaults"],"summary":"Read current pending redemption state for a user.","parameters":[{"schema":{"type":"string","minLength":1,"example":"nest-wisdom-vault"},"required":true,"name":"slug","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PendingRedeemRequestBody"}}}},"responses":{"200":{"description":"Pending redemption state read successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"oneOf":[{"type":"object","properties":{"redemptionType":{"type":"string","enum":["nest"]},"slug":{"type":"string"},"chainId":{"type":"number"},"shareTokenAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"redemptionAsset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"nestVaultAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"user":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"pendingShares":{"type":"string"},"shareDecimals":{"type":"number"}},"required":["redemptionType","slug","chainId","shareTokenAddress","redemptionAsset","nestVaultAddress","user","pendingShares","shareDecimals"]},{"type":"object","properties":{"redemptionType":{"type":"string","enum":["atomicQueue"]},"slug":{"type":"string"},"chainId":{"type":"number"},"shareTokenAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"redemptionAsset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"atomicQueueAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"user":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"pendingShares":{"type":"string"},"shareDecimals":{"type":"number"},"deadline":{"type":"string"},"atomicPrice":{"type":"string"},"offerAmount":{"type":"string"},"inSolve":{"type":"boolean"}},"required":["redemptionType","slug","chainId","shareTokenAddress","redemptionAsset","atomicQueueAddress","user","pendingShares","shareDecimals","deadline","atomicPrice","offerAmount","inSolve"]}]}},"required":["data"]}}}},"400":{"description":"Invalid request or unsupported vault/asset.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}},"500":{"description":"Internal error (RPC failure, etc.).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}}}}},"/vaults/{slug}/update-redeem/build-tx":{"post":{"tags":["vaults"],"summary":"Build a transaction to reduce an existing pending redemption request.","parameters":[{"schema":{"type":"string","minLength":1,"example":"nest-wisdom-vault"},"required":true,"name":"slug","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildUpdateRedeemTxRequestBody"}}}},"responses":{"200":{"description":"Transaction built successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"slug":{"type":"string"},"chainId":{"type":"number"},"redemptionType":{"type":"string","enum":["nest","atomicQueue"]},"shareTokenAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"redemptionAsset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"user":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"previousPendingShares":{"type":"string"},"newShareAmount":{"type":"string"},"shareDecimals":{"type":"number"},"transactions":{"type":"array","items":{"$ref":"#/components/schemas/UpdateRedeemTransaction"}}},"required":["slug","chainId","redemptionType","shareTokenAddress","redemptionAsset","user","previousPendingShares","newShareAmount","shareDecimals","transactions"]}},"required":["data"]}}}},"400":{"description":"Invalid request, no pending redemption, non-reduction update, or failed simulation.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}},"500":{"description":"Internal error (RPC failure, etc.).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}}}}},"/vaults/{slug}/claim/pending":{"post":{"tags":["vaults"],"summary":"Read current claimable redemption shares for a user.","parameters":[{"schema":{"type":"string","minLength":1,"example":"nest-wisdom-vault"},"required":true,"name":"slug","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimRequestBody"}}}},"responses":{"200":{"description":"Claimable redemption shares read successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"redemptionType":{"type":"string","enum":["nest"]},"slug":{"type":"string"},"chainId":{"type":"number"},"shareTokenAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"redemptionAsset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"nestVaultAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"user":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"claimableShares":{"type":"string"},"shareDecimals":{"type":"number"}},"required":["redemptionType","slug","chainId","shareTokenAddress","redemptionAsset","nestVaultAddress","user","claimableShares","shareDecimals"]}},"required":["data"]}}}},"400":{"description":"Invalid request or unsupported vault/asset.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}},"500":{"description":"Internal error (RPC failure, etc.).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}}}}},"/vaults/{slug}/claim/build-tx":{"post":{"tags":["vaults"],"summary":"Build a transaction to claim currently redeemable NestVault shares.","parameters":[{"schema":{"type":"string","minLength":1,"example":"nest-wisdom-vault"},"required":true,"name":"slug","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildClaimTxRequestBody"}}}},"responses":{"200":{"description":"Claim transaction built successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"redemptionType":{"type":"string","enum":["nest"]},"slug":{"type":"string"},"chainId":{"type":"number"},"shareTokenAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"redemptionAsset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"nestVaultAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"user":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"claimableShares":{"type":"string"},"shareDecimals":{"type":"number"},"transactions":{"type":"array","items":{"$ref":"#/components/schemas/ClaimTransaction"}}},"required":["redemptionType","slug","chainId","shareTokenAddress","redemptionAsset","nestVaultAddress","user","claimableShares","shareDecimals","transactions"]}},"required":["data"]}}}},"400":{"description":"Invalid request, unsupported vault/asset, no claimable shares, or failed simulation.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}},"500":{"description":"Internal error (RPC failure, etc.).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}}}}},"/vaults/{slug}/instant-redeem/quote":{"post":{"tags":["vaults"],"summary":"Quote the asset amount for an instant NestVault redemption.","parameters":[{"schema":{"type":"string","minLength":1,"example":"nest-wisdom-vault"},"required":true,"name":"slug","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantRedeemRequestBody"}}}},"responses":{"200":{"description":"Instant redemption quote computed successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"redemptionType":{"type":"string","enum":["nest"]},"slug":{"type":"string"},"chainId":{"type":"number"},"shareTokenAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"redemptionAsset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"nestVaultAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"shareAmount":{"type":"string"},"shareDecimals":{"type":"number"},"redemptionAmount":{"type":"string"},"redemptionDecimals":{"type":"number"},"feeAmount":{"type":"string"},"fees":{"type":"object","properties":{"ratePpm":{"type":"number"},"flatAmount":{"type":"string"},"maxRatePpm":{"type":"number"},"maxFlatAmount":{"type":"string"}},"required":["ratePpm","flatAmount","maxRatePpm","maxFlatAmount"]},"steps":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","enum":["approve","instantRedeem"]},"description":{"type":"string"}},"required":["label","description"]}}},"required":["redemptionType","slug","chainId","shareTokenAddress","redemptionAsset","nestVaultAddress","shareAmount","shareDecimals","redemptionAmount","redemptionDecimals","feeAmount","fees","steps"]}},"required":["data"]}}}},"400":{"description":"Invalid request, unsupported vault/asset, or share amount too small.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}},"500":{"description":"Internal error (RPC failure, etc.).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}}}}},"/vaults/{slug}/instant-redeem/liquidity":{"post":{"tags":["vaults"],"summary":"Read available instant redemption liquidity for a NestVault asset.","parameters":[{"schema":{"type":"string","minLength":1,"example":"nest-wisdom-vault"},"required":true,"name":"slug","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstantRedeemLiquidityRequestBody"}}}},"responses":{"200":{"description":"Instant redemption liquidity read successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"redemptionType":{"type":"string","enum":["nest"]},"slug":{"type":"string"},"chainId":{"type":"number"},"shareTokenAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"redemptionAsset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"nestVaultAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"liquidity":{"type":"string"},"fees":{"type":"object","properties":{"ratePpm":{"type":"number"},"flatAmount":{"type":"string"},"maxRatePpm":{"type":"number"},"maxFlatAmount":{"type":"string"}},"required":["ratePpm","flatAmount","maxRatePpm","maxFlatAmount"]},"redemptionDecimals":{"type":"number"}},"required":["redemptionType","slug","chainId","shareTokenAddress","redemptionAsset","nestVaultAddress","liquidity","fees","redemptionDecimals"]}},"required":["data"]}}}},"400":{"description":"Invalid request or unsupported vault/asset.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}},"500":{"description":"Internal error (RPC or indexer failure, etc.).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}}}}},"/vaults/{slug}/instant-redeem/build-tx":{"post":{"tags":["vaults"],"summary":"Build transactions to instant-redeem NestVault shares.","parameters":[{"schema":{"type":"string","minLength":1,"example":"nest-wisdom-vault"},"required":true,"name":"slug","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildInstantRedeemTxRequestBody"}}}},"responses":{"200":{"description":"Instant redemption transaction bundle built successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"redemptionType":{"type":"string","enum":["nest"]},"slug":{"type":"string"},"chainId":{"type":"number"},"shareTokenAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"redemptionAsset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"nestVaultAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"user":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"receiver":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"shareAmount":{"type":"string"},"shareDecimals":{"type":"number"},"redemptionAmount":{"type":"string"},"redemptionDecimals":{"type":"number"},"feeAmount":{"type":"string"},"transactions":{"type":"array","items":{"$ref":"#/components/schemas/InstantRedeemTransaction"}}},"required":["redemptionType","slug","chainId","shareTokenAddress","redemptionAsset","nestVaultAddress","user","receiver","shareAmount","shareDecimals","redemptionAmount","redemptionDecimals","feeAmount","transactions"]}},"required":["data"]}}}},"400":{"description":"Invalid request, unsupported vault/asset, share amount too small, or failed simulation.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}},"500":{"description":"Internal error (RPC failure, etc.).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}}}}},"/auto-claim/build-tx":{"post":{"tags":["auto-claim"],"summary":"Build a transaction to enable or disable the redeem operator.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildAutoClaimTxRequestBody"}}}},"responses":{"200":{"description":"Transaction built successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"chainId":{"type":"number"},"user":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"operatorRegistryAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"operatorAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"enabled":{"type":"boolean"},"transactions":{"type":"array","items":{"$ref":"#/components/schemas/AutoClaimTransaction"}}},"required":["chainId","user","operatorRegistryAddress","operatorAddress","enabled","transactions"]}},"required":["data"]}}}},"400":{"description":"Invalid request, unsupported chain, or failed simulation.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}},"500":{"description":"Internal error (RPC failure, etc.).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}}}}},"/auto-claim/status":{"post":{"tags":["auto-claim"],"summary":"Read whether the redeem operator is approved for a user.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoClaimStatusRequestBody"}}}},"responses":{"200":{"description":"Auto-claim status read successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"chainId":{"type":"number"},"user":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"operatorRegistryAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"operatorAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"enabled":{"type":"boolean"}},"required":["chainId","user","operatorRegistryAddress","operatorAddress","enabled"]}},"required":["data"]}}}},"400":{"description":"Invalid request or unsupported chain.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}},"500":{"description":"Internal error (RPC failure, etc.).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"}},"required":["error"]}}}}}}}}}