Skip to main content
POST
Submit an order

Authorizations

x-definitive-api-key
string
header
default:dpka_513a2bd7_57a2_46d2_927b_2a3857fe271b
required

Your Definitive API key.

Body

application/json
targetChain
enum<string>
required

Chain of the target (traded) asset. May differ from contraChain for a cross-chain market order.

Available options:
arbitrum,
avalanche,
base,
bsc,
ethereum,
optimism,
polygon,
solana,
hyperevm,
plasma,
monad,
robinhood,
ink,
arc
Example:

"ethereum"

contraChain
enum<string>
required

Chain of the contra (counter) asset. May differ from targetChain for a cross-chain market order.

Available options:
arbitrum,
avalanche,
base,
bsc,
ethereum,
optimism,
polygon,
solana,
hyperevm,
plasma,
monad,
robinhood,
ink,
arc
Example:

"ethereum"

targetAsset
string
required

Address of the target (traded) asset.

Minimum string length: 1
Example:

"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"

contraAsset
string
required

Address of the contra (counter) asset — spent on buys, received on sells.

Minimum string length: 1
Example:

"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"

side
enum<string>
required

direction of the order

Available options:
buy,
sell
Example:

"buy"

qty
string
required

Amount of the asset being spent (sold), as a decimal string in the asset's normalized units. For buy orders this is in contraAsset units; for sell orders this is in targetAsset units.

Example:

"1.5"

orderType
enum<string>
required

Order type. Cross-chain orders support market only.

Available options:
market,
limit,
twap,
stop,
stop-loss,
take-profit,
bracket
Example:

"market"

funderAddress
string
required
Minimum string length: 1
Example:

"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"

userSignature
string
required

Funder wallet signature over the order payload. Accepts 0x-prefixed hex (EVM convention) or base58 (Solana convention). EVM: EIP-712 signature over evm.orderTypedData; SVM: 64-byte Ed25519 signature over svm.orderMessage.

Minimum string length: 1
Example:

"0x..."

quickTrade
boolean

Execution mode for sniping newly launched tokens (exclusive to same-chain market swaps; not supported cross-chain). Reach out to the Definitive team to find out whether QuickTrade is a good fit for your use case.

maxSlippage
string

Slippage tolerance as a decimal (e.g. 0.05 = 5%). When omitted, our engine sets a slippage at order admission.

maxPriceImpact
string

Maximum price impact as a decimal (e.g. 0.05 = 5%). When omitted, our engine applies the order-type-specific default at admission.

limitNotionalPrice
string

USD limit price for the traded (targetAsset) asset. Required for limit orders unless limitCrossPrice is set; optional for twap, stop, stop-loss, and take-profit (trigger orders are promoted to the corresponding LIMIT variant).

Example:

"4000"

limitCrossPrice
string

Pair-rate limit price — how many contraAsset units one targetAsset unit is worth. Frame is the same on buy and sell. Mutually exclusive with limitNotionalPrice; either satisfies the limit-price requirement.

Example:

"4000"

recipientAddress
string

Address that receives funds on the destination chain. Required when targetChain and contraChain differ.

Minimum string length: 1
quoteId
string

QuoteResponse.quoteId. For marketable orders, passing this value in tries executing the cached quote from before instead of requoting again. For non-market orders, this field is unnecessary.

Minimum string length: 1
bridgeQuoteId
string

QuoteResponse.bridgeQuoteId. Cross-chain only; binds submission to the cached bridge quote when present.

Minimum string length: 1
flashIntegratorFeeBps
string
Example:

"10"

erc8021AttributionCode
string

Optional. The integrator's ERC-8021 builder code as registered on base.dev (e.g. acme). Plain value, not key:value — the code is the lookup key into Base's on-chain Code Registry. Applies to EVM settlement transactions only; silently ignored for SVM (Solana) orders. Appended to the settlement transaction calldata alongside Definitive's own builder code as a comma-separated ERC-8021 suffix. An unregistered/typo'd code never fails the order — indexers just can't resolve it to a payout address.

Pattern: ^[a-zA-Z0-9_.-]{1,32}$
Example:

"acme"

evmOrderTypedData
string

Echo of QuoteResponse.evm.orderTypedData. EVM-only.

evmPermitTypedData
string

Echo of QuoteResponse.evm.permitTypedData. EVM-only.

evmPermitSignature
string

Permit2 signature over evm.permitTypedData. EVM-only; accepts 0x-prefixed hex.

svmNonce
string

Echo of QuoteResponse.svm.nonce. SVM-only.

svmDeadline
string

Unix-seconds expiry, echo of QuoteResponse.svm.deadline. SVM-only (the EVM deadline is encoded inside evm.orderTypedData).

svmSponsoredDelegateTx
string

Base64 echo of QuoteResponse.svm.sponsoredDelegateTx after signing with the funder wallet. SVM-only and required when the quote returned a non-null svm.sponsoredDelegateTx; omit otherwise.

twapBucketCount
integer

TWAP only. Must equal the value used at quote time.

Required range: 2 <= x <= 2560
startTime
string<date-time>

TWAP only. Scheduled execution start; must equal the value used at quote time.

Example:

"2026-05-12T00:00:00Z"

triggers
object[]

Price triggers. Each entry requires exactly one of notionalPrice or crossPrice. Must echo the values used at quote time for trigger orders.

Maximum array length: 2
attachedBracket
object

The attached take-profit / stop-loss pair: the legs as quoted plus the signature material from the quote's attachedBracket block.

Response

Order submitted successfully

orderId
string
required
Example:

"ord_xyz789"

attachedBracket
object

Present only when the order carried attachedBracket.