# Aero Allocator Cross-Chain Plan

> Aero Allocator Cross-Chain Plan is a paid API for AI agents from aeroallocator.app, paid per call via x402, $0.25/call, status unknown (last checked 2026-10-31).

Returns ordered, ready-to-sign sAERO allocate() transactions that optimally spread a position across multiple chains (Base, Ethereum, OP, Arbitrum, Ink, Robinhood, Arc) with ETH cost estimates and step sequencing

## Facts

- Endpoint: GET https://aeroallocator.app/api/v1/cross-chain-plan?utm_source=zero.xyz
- Price: $0.25/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-31
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/aero-allocator-cross-chain-plan-48aec65e
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_o9m3Odinvy6AgrmU8Apro

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability aero-allocator-cross-chain-plan-48aec65e
```

Example prompt: Plan the best cross-chain sAERO gauge allocation for my position with token ID 14827 — give me the ordered, ready-to-sign transactions spread across all supported chains optimized for a 30-day fee payoff window.

## When to prefer this

Use this endpoint when you need a complete, sequenced, multi-chain sAERO gauge allocation plan without executing anything on-chain. It is the right choice when you want the best automatic chain split or want to specify exact percentages per chain, and need ETH cost estimates and step ordering before committing. Prefer this over single-chain allocation endpoints when the position should be spread across Base, Ethereum, OP, Arbitrum, Ink, Robinhood, or Arc simultaneously.

## Known failure modes

- Missing or invalid tokenId returns an error — tokenId must be a whole number corresponding to a real sAERO position
- Invalid chains format (e.g. malformed chain:percent pairs) returns a parsing error
- Token ID that does not exist on any supported chain returns a not-found or empty-state error
- Days parameter outside 1–90 range may be rejected or clamped
- Network issues fetching on-chain position state across multiple RPC endpoints may cause partial or failed responses
- Step 1 simulation failure is surfaced in the response but does not block the plan

## How this service works

Ordered, ready-to-sign Aero allocate() transactions that spread an sAERO position over gauges on several chains (Base, Ethereum, OP, Arbitrum, Ink, Robinhood, Arc): the best split after each extra chain's ETH cost, or the percentages you give (?chains=5042:30,10:20). Plans from the position's state on every chain, with the ETH to attach, what each step waits for and a simulation of step 1. Never signs or sends. Pass ?tokenId=.

## Output

An ordered list of ready-to-sign (but unsigned) Aero allocate() transactions covering every chain in the plan, including: the recommended or user-specified percentage split per chain, the ETH value to attach to each transaction, step sequencing dependencies (what each step must wait for), a simulation result for step 1, and a summary of the position's current state across all chains.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "tokenId"
     ],
     "properties": {
      "days": {
       "type": "string",
       "description": "Days the one-off ETH fees are weighed against when choosing the best split, 1 to 90 (default: the allocation wait). Ignored when chains is given."
      },
      "chains": {
       "type": "string",
       "description": "Percent of the position per chain other than Base, e.g. 5042:30,10:20 (Arc 30%, OP 20%); Base keeps the rest. Leave out for the best split over all chains."
      },
      "tokenId": {
       "type": "string",
       "description": "sAERO position id (a whole number). Required."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/aero-allocator-cross-chain-plan-48aec65e/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from aeroallocator.app](https://www.zero.xyz/host/aeroallocator.app/llms.txt)
