Skip to main content
POST
/
intents
/
splits
Split Intent by Liquidity
curl --request POST \
  --url https://v1.orchestrator.rhinestone.dev/intents/splits \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <x-api-key>' \
  --data '
{
  "chainId": "eip155:42161",
  "tokens": {
    "0xaf88d065e77c8cc2239327c5edb3a432268e5831": "5000000000000"
  },
  "settlementLayers": {
    "exclude": [
      "RELAY"
    ]
  }
}
'
{
  "intents": [
    {
      "0xaf88d065e77c8cc2239327c5edb3a432268e5831": "2400000000000"
    },
    {
      "0xaf88d065e77c8cc2239327c5edb3a432268e5831": "1700000000000"
    },
    {
      "0xaf88d065e77c8cc2239327c5edb3a432268e5831": "900000000000"
    }
  ]
}

Headers

x-api-key
string
required

Rhinestone API key

x-api-version
string

API version (YYYY-MM.name). Will become required in a future release.

Pattern: ^\d{4}-\d{2}\.[a-z0-9]+$
Example:

"2026-01.alps"

Body

application/json

Body

chainId
string
required

The destination chain ID

Pattern: ^eip155:\d+$
Example:

"eip155:42161"

tokens
object
required

Map of token addresses to amounts

Example:
{
"0xaf88d065e77c8cc2239327c5edb3a432268e5831": "5000000000000"
}
settlementLayers

Which settlement layers the orchestrator may use. { include: [...] } (allow-list) or { exclude: [...] } (deny-list, inverted against the orchestrator's live layer set); a bare array means include. Internal modes (SAME_CHAIN, INTENT_EXECUTOR) are not selectable. Default unset = all layers eligible.

Available options:
ACROSS,
ECO,
RELAY,
OFT,
NEAR,
RHINO,
CCTP
Example:
{ "exclude": ["RELAY"] }

Response

200

Successfully split the intent by available liquidity

intents
object[]
required

Array of intents, each mapping token addresses to amounts that can be filled by a single relayer

Example:
[
{
"0xaf88d065e77c8cc2239327c5edb3a432268e5831": "2400000000000"
},
{
"0xaf88d065e77c8cc2239327c5edb3a432268e5831": "1700000000000"
},
{
"0xaf88d065e77c8cc2239327c5edb3a432268e5831": "900000000000"
}
]