Skip to main content
POST
Deposit

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, amount or retry authorization 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
string
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"

urgency
enum<string>
default:normal

Preference for generated self-funded EVM prices. Urgent raises the normal tip by 25%, rounded up, and adds the delta to maxFeePerGas; for legacy, gasPrice rises by 25%, rounded up. Zero tips stay zero. Gas units are unchanged. Explicit initial prices, including zero, override this preference; an inconsistent resulting fee pair is rejected. New unsigned transactions use fresh recommendations. Durable transfers, manual recovery and yield retain the preference; omission and normal share the legacy request identity. Changing urgency under the same durable key conflicts. Prepared and signed bytes remain unchanged on replay. Replacements still honor their historical minimum bump and authorized ceiling, clamping preferred prices when a valid replacement fits. Urgent does not guarantee confirmation time. Unsupported for sponsored transfers, non-EVM execution and sign-transaction.

Available options:
normal,
urgent
Example:

"urgent"

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

autoRetry
object

Optional shared recovery for an existing Aave or Morpho deposit/withdrawal. action authorizes its own transaction; approval must be explicitly present before a needed approval can sign. Never copies or rolls unused phase authorization forward. Each phase uses the existing per-transaction execution-gas ceiling, not a cumulative operation budget. The initial transaction must fit its phase ceiling. Fees are wallet-paid. One original deadline applies across phases and idempotent replays. Changing authorization with the same key returns 409. A missing approval ceiling (AUTO_RETRY_PHASE_FEE_REQUIRED) or first transaction above its ceiling (RECOVERY_FEE_CAP_REACHED) stops the unsigned phase as requires_action. Same-key replay cannot fix it; cancel proven-unsigned work first, then create a new request with a new key and adequate ceilings. Uncertain or signed work cannot be cancelled this way. Omission preserves existing exact-byte recovery behavior.

Response

Existing terminal or paused operation.

id
string<uuid>
required
walletId
string<uuid>
required
chainId
enum<integer>
required
Available options:
1,
8453,
11155111,
84532
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. With autoRetry, submitted means a phase is admitted or being tracked; inspect its attempt stages rather than inferring that signing or broadcast succeeded. Ordinary submitted work has signed bytes stored even when RPC acceptance is uncertain. confirmed means the final action succeeded. With autoRetry, shared reconciliation requires two canonical confirmations and finalized-chain inclusion. Without autoRetry, two canonical confirmations suffice and do not establish finality. failed means an on-chain revert or a consumed nonce (NONCE_CONSUMED, or RECOVERY_NONCE_CONSUMED with autoRetry); 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
autoRetry
object
error
object