Skip to main content
POST

Authentication

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

Required Permissions

Allocations:Create: Always required
Wallets:Transactions:Create: Always required. Allocation transactions are broadcast from your wallet.
FeeSponsors:Use: Required if feeSponsorId is specified and the sponsoree wallet belongs to an EndUser user kind.

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

Body

application/json

Request body for creating an allocation investment.

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

Ofns protocol

Available options:
0fns
sourceAsset
EVM Fungible Token (ERC-20) · object
required

Source asset and amount to spend (the stablecoin for a deposit).

targetAsset
EVM Fungible Token (ERC-20) · object
required

Target asset (0fns) and the minimum amount you will accept.

externalId
string

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

provider
enum<string>

The provider handling this allocation. M0 offers the 0fns protocol; Yield.xyz offers vault strategies on Ethereum and Base.

Available options:
M0,
Yield.xyz
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. See Create Allocation for each protocol's provider, deposit asset, and network.

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 October 9, 2026