Prepare atomic ve(3,3) reallocation
prepare_ve33_reallocationCompile a reviewed current allocation into at most 25 target pool-weight shares as one atomic batch of decodable VeToken steps. The default path only claims, splits, and votes: nothing is burned, no lock is extended, and nothing is withdrawn. The optional compact_max_lock strategy fee-safely consolidates active NFTs, extends the survivor to four years, then creates exactly one voting NFT per target; it burns every merged source NFT and lengthens the lock, and explicitly discloses both. Show the get_ve33_allocations result first and pass its exact state_id; hand the wallet the survivor, every burned source, the extension, and the decoded calls. See ekubo://docs/ve33-workflow.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sender | Yes | VeToken owner that will execute the atomic batch (address) | |
| targets | Yes | At most 25 targets. compact_max_lock creates one final voting VeToken per target; preserve_existing_locks may require multiple NFTs per target to keep expiry-cohort decay proportional. | |
| chain_id | Yes | With ve_token, from get_ve33_allocations (STONX: 4663), not the wallet's chain | |
| strategy | No | Defaults to preserve_existing_locks. compact_max_lock explicitly claims fees, consolidates active stake into one surviving NFT, extends it to four years, then creates exactly one voting NFT per target; redundant source NFT IDs are burned. | |
| ve_token | Yes | address | |
| salt_nonce | Yes | User-selected nonce for deterministic child VeToken IDs created by required splits (bytes32 hex) | |
| current_state_id | Yes | Exact state_id returned by get_ve33_allocations; preparation fails if indexed state changed (bytes32 hex) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| execution_plan_reference | No | artifact_reference; pass unchanged |