POST /v1/actions/enter on a staking yield, work out whether it needs a validator at all, and if it does, which argument name carries it. This guide covers the decision, the validators endpoint, and how Preferred validators, Bring your own node, and Whitelabel nodes differ.
Prerequisites
- A yield.xyz API key, sent as
x-api-keyon every request. - A staking yield’s full metadata from
GET /v1/yields/{yieldId}. See Stake a token for the full discover, inspect, enter loop this guide plugs into.
Decide whether a validator applies
Read two fields from the yield object, in order:1
Check mechanics.requiresValidatorSelection
true means the yield delegates to validators you choose; false means it doesn’t, either because the provider assigns one internally or because selection doesn’t apply (a liquid-staking token, a pooled product with no per-validator choice).2
Read mechanics.arguments.{enter,exit}.fields for the exact argument
requiresValidatorSelection only tells you whether selection happens somewhere in the flow, not on which action or under what name. The argument schema is authoritative: look for a field named validatorAddress or validatorAddresses in mechanics.arguments.enter.fields, .exit.fields, or a mechanics.arguments.manage entry, and check its own required flag.
A field named
validatorAddress takes one address; validatorAddresses takes an array. Send exactly the field name the schema gives you, nothing more generic: passing validatorAddress where the schema names validatorAddresses (or the reverse) fails the request.
Some yields route a pool’s own address through the singular field. Polkadot and Kusama pool staking, and TON’s nomination-pool staking, both require
validatorAddress, but the value you pass is the pool’s address, not an individual validator’s. Cardano requires validatorAddress on enter only; its exit schema takes no validator field. Confirm this per yield instead of assuming a pattern.Verified examples
Solana native staking: validatorAddress, required on enter and exit
Solana native staking: validatorAddress, required on enter and exit
solana-sol-native-multivalidator-staking requires validatorAddress (singular) on both enter and exit. Delegating to several validators means one enter call per validator, each producing its own stake account.Tron native staking: validatorAddresses, enter only
Tron native staking: validatorAddresses, enter only
tron-trx-native-staking requires validatorAddresses (array) plus tronResource on enter; exit takes only amount, no validator field.Polkadot and Kusama validator staking: validatorAddresses on both actions
Polkadot and Kusama validator staking: validatorAddresses on both actions
The substrate validator-staking module requires
validatorAddresses (array) on both enter and exit. The separate pool-staking module (polkadot-dot-pool-staking, kusama-ksm-pool-staking) instead requires the singular validatorAddress, carrying the pool’s address, on both actions.Cardano: validatorAddress on enter only
Cardano: validatorAddress on enter only
cardano-ada-native-staking requires validatorAddress on enter; its exit schema has no validator field at all.Ethereum dedicated-validator staking: no field on enter, validatorAddress on exit
Ethereum dedicated-validator staking: no field on enter, validatorAddress on exit
Figment, P2P, Luganodes, and Validation Cloud native ETH staking take no validator field on
enter; the provider assigns the validator. exit requires validatorAddress (Figment and Validation Cloud also require signatureVerification) to identify which validator to exit from.Fetch and choose a validator
When the schema requires a validator, callGET /v1/yields/{yieldId}/validators before building the enter request:
Response (excerpt)
name, address, provider, status, and preferred as filters, plus offset and limit for pagination. Filtering status=active (or checking the field client-side) excludes validators the API reports as jailed, deactivating, inactive, full, or not_found, so you don’t offer a delegation target that will fail on-chain. preferred=true narrows the list to yield.xyz’s Preferred validators. address is the value you pass back as validatorAddress or one entry of validatorAddresses; use commission and, where present, rewardRate to help the user compare candidates. See the validators endpoint reference for the full ValidatorDto shape.
Changing validators later
Most yields have no in-place validator change: exit the position from the current validator, then enter again with a differentvalidatorAddress (or validatorAddresses), following the same schema-driven flow as the initial enter.
Cosmos SDK native staking is the exception. An active balance there can carry a RESTAKE pending action that redelegates it to another validator without unbonding first. Run it through POST /v1/actions/manage with action: "RESTAKE", the balance’s passthrough unchanged, and the destination validator as validatorAddress in arguments. Look for RESTAKE in the balance’s pendingActions (not RESTAKE_REWARDS, which restakes rewards) before falling back to exit and re-enter. See Tracking balances for running pending actions.
Preferred validators vs bring your own node vs whitelabel nodes
These are three ways to route delegations, not variations on the same flow. Preferred validators are yield.xyz’s curated, pre-vetted set: filter topreferred=true and pass one straight into validatorAddress, no setup required. Bring your own node routes delegations to validator addresses you already operate; you still discover and pass the address the same way, but it resolves to your own infrastructure. Whitelabel nodes go further: yield.xyz deploys and operates a dedicated validator under your brand, arranged directly with yield.xyz rather than through the API. Use Preferred validators by default, Bring your own node when you already run infrastructure, and Whitelabel nodes when you want branded infrastructure without operating it yourself.
Next steps
Stake a token
Plug validator selection into the full enter, sign, submit, and track flow.
Preferred validators
The full ValidatorDto shape and how PVN validators are curated.
Bring your own node
Route delegations to validators you operate.
Actions
The full action and argument-schema model.

