Skip to main content
POST
Withdraw

Authorizations

X-API-Key
string
header
default:sk_your_secret_key_here
required

Your partner secret key (server-side only)

Headers

X-Request-Id
string<uuid>

UUID for request tracing. Para returns one if omitted.

Idempotency-Key
string
required

Required durable key scoped to your API partner across yield operations. Reuse the same key and normalized request to retrieve or explicitly retry its operation. A different wallet, chain, market, action or amount returns 409. Unlike generic POST idempotency, this key is retained with the operation rather than expiring after 24 hours.

Required string length: 1 - 256
Pattern: ^[\x21-\x7e]+$

Path Parameters

walletId
string<uuid>
required

Wallet UUID. A malformed or inaccessible wallet ID returns 404.

Example:

"0a1b2c3d-4e5f-6789-abcd-ef0123456789"

Body

application/json
marketId
string
required

Market ID from the markets endpoint. Determines the chain and asset. Required if chainId is omitted. Without marketId, chainId selects Aave V3. Unsupported market IDs or a mismatched chainId return 400 before operation creation or signing. Additional request fields are rejected. Morpho supports morpho-v2-ethereum-steakhouse-usdc on Ethereum (1) and morpho-v2-base-steakhouse-usdc on Base (8453). The sandbox-only Morpho demo market is morpho-v2-base-sepolia-demo-usdc on Base Sepolia (84532); it holds test USDC idle and earns no lending yield.

Example:

"morpho-v2-base-steakhouse-usdc"

amount
required

Positive USDC amount in decimal units, not base units. At most six decimal places; zero is rejected.

Maximum string length: 85
Pattern: ^(0|[1-9]\d*)(\.\d{1,6})?$
Example:

"10"

chainId

Optional when marketId is supplied; must match its chain. Without marketId, selects Aave V3 on this chain. Native USDC on Ethereum mainnet (1) or Base mainnet (8453), or Aave test USDC on Sepolia (11155111). Base Sepolia (84532) uses test USDC and is available only in sandbox and local test environments. Base uses native USDC, not USDbC. Mainnet chain IDs use real funds regardless of API environment.

Available options:
1,
8453,
11155111,
84532
Example:

8453

Response

Existing terminal or paused operation.

id
string<uuid>
required
walletId
string<uuid>
required
chainId
enum<integer>
required
Available options:
1,
8453,
11155111
Example:

8453

marketId
string
required
Example:

"morpho-v2-base-steakhouse-usdc"

source
enum<string>
required
Available options:
aave-v3,
morpho-v2
action
enum<string>
required
Available options:
deposit,
withdraw
amount
string
required

Normalized decimal USDC amount, or all for withdrawals.

Example:

"10.0"

status
enum<string>
required

pending work automatically retries recognized temporary RPC failures before signing and waits for another yield operation on the same wallet. submitted can mean signed and durably stored even when RPC acceptance is uncertain. confirmed requires two confirmations of the canonical block; this is not finality. failed means an on-chain revert or NONCE_CONSUMED; it does not guarantee that no funds moved. requires_action needs an explicit retry after correcting the issue.

Available options:
pending,
submitted,
confirmed,
failed,
requires_action,
cancelled
transactions
object[]
required
createdAt
string<date-time>
required
updatedAt
string<date-time>
required
error
object