Skip to main content
POST
Create Allocation Action

Authentication

✅ Organization User (CustomerEmployee)
❌ Delegated User (EndUser)
✅ Service Account

Required Permissions

Allocations:Update: Always required
Wallets:Transactions:Create: Always required. Allocation transactions are broadcast from your wallet.
FeeSponsors:Use: Required if feeSponsorId is specified.

Authorizations

Authorization
string
header
required

Bearer Token: Used to authenticate API requests. More details how to generate the token: Authentication flows

X-DFNS-USERACTION
string
header
required

User Action Signature: Used to sign the change-inducing API requests. More details how to generate the token: User Action Signing flows

Path Parameters

allocationId
string
required

Unique identifier for the allocation investment.

Required string length: 1 - 64

Body

application/json

Request body for creating an allocation action.

kind
enum<string>
required

The type of action being performed on the allocation investment: Deposit to add funds or Withdraw to remove funds.

Available options:
Deposit,
Withdraw
sourceAsset
EVM Fungible Token (ERC-20) · object
required
targetAsset
EVM Fungible Token (ERC-20) · object
required
slippageBps
integer
required

The slippage tolerance for this trade in basis point (BPS). Slippage tolerance defines the maximum price difference you're willing to accept during a trade from the estimated quote, ensuring you still receive at least a minimum number of tokens if the price shifts. One basis point equals one-hundredth of a percentage point, or 0.01%.

Required range: 0 <= x <= 10000
externalId
string

An optional external identifier provided by the client to ensure idempotency and prevent duplicate operations.

feeSponsorId
string

Id of the fee sponsor that will pay the network fees for this allocation. When set, allocation transactions are broadcast as sponsored user operations.

Required string length: 1 - 64
Pattern: ^fs-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
Example:

"fs-5vqdl-gliqk-b4rfukqauov1sp7j"

Response

200 - application/json

Success

A allocation investment representing funds deposited to earn interest from a DeFi protocol.

id
string
required

Unique identifier for the allocation investment.

Required string length: 1 - 64
Pattern: ^allctn-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
Example:

"allctn-7mnn0-rltpq-9bvps60gjm09td0j"

walletId
string
required

Wallet id.

Required string length: 1 - 64
Pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
Example:

"wa-5pfuu-9euek-h0odgb6snva8ph3k"

protocol
enum<string>
required

The DeFi protocol used for allocation generation.

Available options:
0fns,
SkySusds,
GauntletUsdcPrime,
SteakhouseUsdt,
GauntletUsdcPrimeBase,
SteakhouseUsdcBase,
SentoraPyusdMain
amount
Native Asset · object
required

The total amount currently invested in this allocation.

rewards
Native Asset · object
required

The total rewards earned so far in this allocation.

dateCreated
string<date-time>
required

ISO 8601 date (must be UTC). ISO 8601 date. When the allocation was created.

Example:

"2023-04-14T20:41:28.715Z"

actions
object[]
required
provider
enum<string>

The provider handling this allocation.

Available options:
M0,
Yield.xyz
Last modified on July 9, 2026