Api Endpoint

Yield Exit Actions

Build unsigned transactions to exit a DeFi yield position — unstake, withdraw from lending or vaults, or redeem RWAs — across 80+ networks. Supports instant and queued/cooldown redemption per protocol. Does NOT execute: the caller signs and broadcasts each tx. Check positions with yields_get_balances first.

Open interactive test console

Offering

Provider
mcp.yield.xyz
Method
POST
Offering type
Api Endpoint
Transport type
http
Category
Blockchain And Crypto
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://mcp.yield.xyz/x402/actions_exit
MIME type
Not provided
First seen
2026-10-16T01:50:10.647Z
Last seen
Tags
unstaking, defi withdrawal, redemption, exit position, unsigned transaction

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
0.001 USDC
Atomic price: 1000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Payment option 2
0.001 USDC
Atomic price: 1000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Payment option 3
0.001 USDC
Atomic price: 1000 · Network: eip155:43114 · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "1000",
    "payTo": "0xD433f056270912659f073D5FFE7Ae247e39235A5"
  },
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
    "amount": "1000",
    "payTo": "0xD433f056270912659f073D5FFE7Ae247e39235A5"
  },
  {
    "scheme": "exact",
    "network": "eip155:43114",
    "asset": "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
    "amount": "1000",
    "payTo": "0xD433f056270912659f073D5FFE7Ae247e39235A5"
  }
]

Observed health

Status
Healthy
Latest latency
49 ms
Average latency
38 ms
HTTP status
204
Last checked
Reachability
100% over 14 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

{
  "additionalProperties": false,
  "properties": {
    "body": {
      "properties": {
        "address": {
          "description": "Wallet address that owns the position",
          "type": "string"
        },
        "amount": {
          "description": "Human-readable token amount to withdraw, e.g. \"0.5\" (never raw wei). Optional when useMaxAmount is true.",
          "type": "string"
        },
        "outputToken": {
          "description": "Withdrawal token address, for yields that can pay out in more than one token. Required when the yield's exit schema lists outputToken as required. Use \"0x\" for the native token.",
          "type": "string"
        },
        "outputTokenNetwork": {
          "description": "Network of the output token, for cross-chain withdrawals where the destination is not on the vault's own network.",
          "type": "string"
        },
        "useMaxAmount": {
          "description": "Withdraw the full position balance; amount may be omitted.",
          "type": "boolean"
        },
        "validatorAddress": {
          "description": "Validator to undelegate from, for delegation-based staking yields",
          "type": "string"
        },
        "yieldId": {
          "description": "Yield ID of the position to exit, e.g. \"ethereum-eth-lido-staking\"",
          "type": "string"
        }
      },
      "required": [
        "yieldId",
        "address"
      ],
      "type": "object"
    },
    "bodyType": {
      "enum": [
        "json",
        "form-data",
        "text"
      ],
      "type": "string"
    },
    "method": {
      "enum": [
        "POST"
      ],
      "type": "string"
    },
    "type": {
      "const": "http",
      "type": "string"
    }
  },
  "required": [
    "type",
    "method",
    "bodyType",
    "body"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "example": {
      "description": "Core fields shown; responses may carry additional yield-specific fields depending on the protocol (this schema is intentionally non-exhaustive).",
      "properties": {
        "address": {
          "type": "string"
        },
        "amount": {
          "type": [
            "string",
            "null"
          ]
        },
        "createdAt": {
          "type": "string"
        },
        "executionPattern": {
          "enum": [
            "synchronous",
            "asynchronous",
            "batch"
          ],
          "type": "string"
        },
        "id": {
          "description": "Action ID — poll status later with actions_get",
          "type": "string"
        },
        "intent": {
          "description": "\"enter\", \"exit\", or \"manage\"",
          "type": "string"
        },
        "status": {
          "description": "\"CREATED\" on success; poll until SUCCESS/FAILED",
          "type": "string"
        },
        "transactions": {
          "description": "Sign and broadcast each transaction in stepIndex order, then report each hash via submit_hash. NEVER modify unsignedTransaction.",
          "items": {
            "properties": {
              "gasEstimate": {
                "type": "string"
              },
              "id": {
                "type": "string"
              },
              "isMessage": {
                "description": "When true, sign as a message instead of a transaction",
                "type": "boolean"
              },
              "network": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "stepIndex": {
                "type": "integer"
              },
              "title": {
                "type": "string"
              },
              "type": {
                "description": "e.g. \"APPROVAL\", \"SUPPLY\", \"STAKE\"",
                "type": "string"
              },
              "unsignedTransaction": {
                "description": "Raw transaction to sign — a JSON string on EVM chains, an object on non-EVM chains. Never modify it."
              }
            },
            "type": "object"
          },
          "type": "array"
        },
        "type": {
          "description": "Action type, e.g. \"STAKE\", \"UNSTAKE\", \"CLAIM_REWARDS\"",
          "type": "string"
        },
        "yieldId": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "type": {
      "type": "string"
    }
  },
  "required": [
    "type"
  ],
  "type": "object"
}