# yield.xyz Enter Position (Construct Unsigned Stake/Deposit Tx)

> yield.xyz Enter Position (Construct Unsigned Stake/Deposit Tx) is a paid API for AI agents from mcp.yield.xyz, paid per call via x402, $0.001/call, status unknown (last checked 2026-10-10).

Constructs unsigned transactions for staking, lending, vault deposits, or other yield-generating positions so the caller can sign and broadcast them.

## Facts

- Endpoint: POST https://mcp.yield.xyz/x402/actions_enter?utm_source=zero.xyz
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/yield-xyz-enter-position-construct-unsigned-stake-deposit-tx-77d7d86c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_DbcdNQjwUrO_FzQfpnQW0

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 yield-xyz-enter-position-construct-unsigned-stake-deposit-tx-77d7d86c -d '<json body>'
```

Example prompt: Build me an unsigned transaction to stake 1.5 ETH into yield ID 'eth-lido-staking' from my wallet 0xAbC...123 so I can review and sign it myself.

## When to prefer this

Use this endpoint when you need to programmatically enter a staking, lending, or vault position across 80+ networks while retaining full custody — the API never holds or moves funds itself. Prefer this over execution-based APIs when the signing wallet must remain client-side, or when you need to inspect, simulate, or batch transactions before broadcasting.

## Known failure modes

- Invalid yieldId returns 404 or error indicating yield not found
- Malformed wallet address causes validation error
- Amount below protocol minimum triggers rejection
- Unsupported network or yield type returns capability error
- Missing required fields (address, amount, yieldId) returns 400 bad request
- Yield protocol temporarily paused or deprecated returns error state

## How this service works

Build unsigned transactions to enter any DeFi yield — native/liquid staking (ETH, SOL, ATOM), stablecoin lending (USDC/USDT on Aave, Morpho), ERC-4626 vaults, and tokenized RWAs across 80+ networks. Does NOT execute: the caller signs and broadcasts each tx, so keys never leave the caller. Find yield IDs via yields_get_all.

## Output

Returns one or more unsigned transaction objects that the caller must sign and broadcast — no execution happens on the API side. Each tx contains the calldata, target contract, value, and chain details needed to enter the specified yield position.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "amount": {
   "type": "string",
   "description": "Human-readable token amount to deposit, e.g. \"1.5\" (never raw wei)"
  },
  "address": {
   "type": "string",
   "description": "Wallet address that will own the position and sign the transactions"
  },
  "yieldId": {
   "type": "string",
   "description": "Yield ID from yields_get_all, e.g. \"ethereum-eth-lido-staking\""
  },
  "inputToken": {
   "type": "string",
   "description": "Deposit token address, for yields accepting more than one deposit token. Required when the yield's enter schema lists inputToken as required. Use \"0x\" for the native token."
  },
  "validatorAddress": {
   "type": "string",
   "description": "Validator to delegate to, for delegation-based staking yields. Get options from yields_get_validators."
  },
  "inputTokenNetwork": {
   "type": "string",
   "description": "Network of the input token, for cross-chain deposits where it is not on the vault's own network."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "id": "0b8e2c5a-4f3d-4c2b-9e1a-7d6f5e4c3b2a",
  "type": "STAKE",
  "amount": "1",
  "intent": "enter",
  "status": "CREATED",
  "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  "yieldId": "base-usdc-aave-v3-lending",
  "transactions": [
   {
    "id": "6b757454-725c-4871-9f9a-8fa159dc8720",
    "type": "APPROVAL",
    "title": "APPROVAL Transaction",
    "status": "CREATED",
    "network": "base",
    "stepIndex": 0,
    "unsignedTransaction": "{\"from\":\"0xd8dA…\",\"to\":\"0x8335…\",\"data\":\"0x095e…\"}"
   },
   {
    "id": "da961e24-0f26-462e-9456-3886386ef247",
    "type": "SUPPLY",
    "title": "SUPPLY Transaction",
    "status": "CREATED",
    "network": "base",
    "stepIndex": 1,
    "unsignedTransaction": "{\"from\":\"0xd8dA…\",\"to\":\"0xa238…\",\"data\":\"0x617b…\"}"
   }
  ],
  "executionPattern": "synchronous"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/yield-xyz-enter-position-construct-unsigned-stake-deposit-tx-77d7d86c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from mcp.yield.xyz](https://www.zero.xyz/host/mcp.yield.xyz/llms.txt)
