List withdrawal options
Lists the withdrawal routes a position supports right now: instant, provider order, solver queue and operator redemption, each read from live provider state.
POST/
A position offers instant or provider order, never both; the withdrawal endpoints build whichever it offers. Call this when the customer starts a withdrawal, and let them choose when more than one route is available. Never infer a route from the strategy's liquidityTerm.
Requires an API key with the earn.read action.
Headers
-
x-project-id·string· min length 1 · exampleprj_exampleRequired for dashboard sessions. API keys use their assigned project.
Request body
application/json · required
List the withdrawal routes a position supports right now.
-
positionId·string· required · min length 1 · max length 128 · exampleearn_position_2f8b6b04-7147-487e-b760-b1caa4fbcb8bThe position's ID, from the positions list or the deposit submit response.
Responses
-
200Withdrawal options and their live terms-
data·object· required-
positionId·string· required · min length 1 · max length 128 · exampleearn_position_2f8b6b04-7147-487e-b760-b1caa4fbcb8bThe position's ID, from the positions list or the deposit submit response.
-
instant·boolean· requiredWhether the withdrawal endpoints build an instant withdrawal for this position. Never true together with
providerOrder. -
providerRedemptionModes·string[]· each one ofstandard,instant -
providerOrder·boolean· requiredWhether the withdrawal endpoints build a provider order that pays out later. Never true together with
instant. -
queued·boolean· requiredWhether a solver queue accepts requests now. Never infer it from
liquidityTerm. -
withdrawAuthority·string | null· requiredThe withdrawal authority the queue's vault reports, or null without a queue. Informational: no request takes it.
-
queueState·string | null· requiredThe provider queue account, or null without a queue.
-
queueAsset·object | null· requiredLive asset-specific queue limits. Null when this asset has no queue configuration.
-
assetMint·string· required · min length 32 · max length 44 · pattern^[1-9A-HJ-NP-Za-km-z]{32,44}$· example2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXoBase58 Solana mint address.
-
allowWithdrawals·boolean· requiredWhether this asset's queue currently accepts new requests.
-
secondsToMaturity·integer· required · min 0 · example86400Seconds after the request is created, by the cluster clock, before a solver may fulfill it.
-
minimumSecondsToDeadline·integer· required · min 0 · example3600Shortest solver window accepted after maturity.
-
maximumSecondsToDeadline·integer· required · greater than 0 · max 7776000 · example7776000Longest solver window accepted after maturity.
-
minimumDiscountBps·integer· required · min 0 · max 10000 · example0 -
maximumDiscountBps·integer· required · min 0 · max 10000 · example500 -
minimumShares·string· required · max length 128 · pattern^(?=.*[1-9])\d+(\.\d+)?$· example1Smallest request accepted by the queue, in share units.
-
shareDecimals·integer· required · min 0 · max 38 · example6
-
-
parRedemption·object | null· requiredLive operator redemption terms. Null when this strategy offers no operator redemption.
-
intermediateMint·string· required · min length 32 · max length 44 · pattern^[1-9A-HJ-NP-Za-km-z]{32,44}$· example2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXoToken created or delegated by the request transaction and later burned by the operator.
-
assetMint·string· required · min length 32 · max length 44 · pattern^[1-9A-HJ-NP-Za-km-z]{32,44}$· example2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXoToken the operator pays when the redemption completes.
-
minimumShares·string | null· required · max length 128 · pattern^(?=.*[1-9])\d+(\.\d+)?$· example1Smallest operator redemption request funded by shares, in position-share units. Null while the provider's rate is unavailable, which also blocks share-funded requests.
-
minimumIntermediateAmount·string· required · max length 128 · pattern^(?=.*[1-9])\d+(\.\d+)?$· example0.000001Smallest request over intermediate the owner already holds, in intermediate-token units.
-
shareDecimals·integer· required · min 0 · max 38 · example6 -
assetDecimals·integer· required · min 0 · max 38 · example6 -
cancelable·boolean· requiredWhether the owner may revoke an open request before the operator completes it.
-
operatorSettled·boolean· required · alwaystrueAlways true: a provider operator must complete the eventual asset payout.
-
-
-
meta·object· requiredResponse metadata.
-
requestId·string· required · min length 1 · examplereq_exampleRequest identifier for tracing.
-
timestamp·string· required · formatdate-time· example2025-01-01T00:00:00.000ZISO 8601 timestamp.
-
-
-
400Bad Request-
error·object· requiredStandard error payload.
-
code·string· requiredMachine-readable error code.
-
message·string· requiredHuman-readable error message.
-
details·objectOptional error details for debugging.
*·any
-
-
meta·object-
requestId·string· min length 1 · examplereq_exampleRequest identifier for tracing.
-
-
-
401UnauthorizedSame fields as
400. -
403Forbidden. Requires theearn.readaction: an API key must hold it (a module'smanageorexecutealso covers itsread), and a signed-in member's organization role must include it. Without it the error is INSUFFICIENT_PERMISSIONS anderror.details.actionnames the action. Any other 403 names its own reason.Same fields as
400. -
404Not FoundSame fields as
400. -
429Too Many RequestsSame fields as
400. -
500Internal Server ErrorSame fields as
400. -
501The provider does not support this operation.-
error·object· requiredStandard error payload.
-
code·string· required -
message·string· requiredHuman-readable error message.
-
details·objectOptional error details for debugging.
*·any
-
-
meta·object-
requestId·string· min length 1 · examplereq_exampleRequest identifier for tracing.
-
-
-
503Service UnavailableSame fields as
400.