Movement's Aptos Core has introduced four new combined entry functions in `aptos_experimental::confidential_asset` designed to streamline wallet user experiences by fusing common back-to-back flows. The new functions eliminate the need for multiple signature prompts, enabling wallets to deliver one-tap UX for confidential asset operations.
The new entry functions are: `register_and_deposit_and_rollover_pending_balance` for first-time shield operations that convert public fungible assets into spendable confidential balances in a single transaction; `deposit_and_rollover_pending_balance` for already-registered and normalized users; `deposit_and_normalize_and_rollover_pending_balance` for registered users who haven't yet normalized their balance; and `normalize_and_rollover_pending_balance` for accepting pending balances when the actual balance isn't normalized yet.
Each combined function maintains strict error handling and precondition checking. The design philosophy ensures callers branch logic off-chain to determine the correct function to invoke, as proof generation — the computationally expensive step — occurs before transaction build. This approach avoids on-chain tolerance that wouldn't reduce client-side work.
Client integration is already wired in the TypeScript SDK and Motion Wallet. The SDK's `rolloverPendingBalance` method automatically reads the `isBalanceNormalized` state and dispatches to the appropriate entry function, while Motion Wallet's `rolloverConfidentialPending` method forwards requests with decryption keys, presenting users with a single wallet prompt regardless of their balance state. Comprehensive Move unit tests and Rust end-to-end tests validate all happy paths and error branches.

