One of the core Move features we have been hard at work on is the ability to receive on an object. Move's new feature, Transfer to Object, makes receiving an object by another object, rather than an account address, possible on Sui.
Prior to Transfer to Object, only an address can be on the receiving end of a transfer. Transfer to Object makes it possible to access objects that are owned by another object, essentially by enabling the transferring of child objects out to another object under a set of pre-defined fine-grained policies (“custom receivership rules”) for the receiving operation.
The new primitives described above make Sui’s object ownership model richer, while unlocking a new set of potential uses and enhancements.
- With Transfer to Object, many-to-one concurrent interactions with an object are now possible. As one example, an app could send dozens of ticket receipts in parallel to a ticket register object.
- Mass and concurrent airdrops to Kiosks, or transfer NFTs or other assets from one Kiosk to another can now be built.
- Smart contract wallet
- Without Transfer to Object, wallets typically conduct transfers between accounts/addresses based on private keys. With Transfer to Object, one or more onchain “account” objects can become the hub of wallet interactions, essentially an onchain smart contract wallet. Access to to-be-transferred objects can now be associated with rich and dynamic policy checks that are as arbitrary as “is today Thursday” or “does the weather Oracle say the temperature is above 20 degrees Celsius”. If these checks fail the object transfer cannot proceed.
- With such fine-grained policies for object transfers, one can easily imagine constructing an onchain, upgradable, highly-secure smart contract wallet with multi-sig support and with preset spending limits for different actors to prevent wallet-draining exploits. This is essentially equivalent in functionality to Ethereum Account Abstraction described in ERC-4337.
- If an address and its private key has been compromised, one can continue to access the underlying account object itself with no change.
- RWA tokenization
- The tokenization of real world assets (RWA) gained substantial momentum in 2023, in particular among institutions for capital market instruments.
- Enterprises and institutions are often subject to compliance and separation-of-concern requirements. The ability to implement fine-grained and flexible transfer policies and receivership policies will be essential for institutional adoption of RWA tokenization.
There are many available developer resources for Transfer to Object, including:
In addition to being available in Devnet, Testnet, and Mainnet, Transfer to Object is also supported in the Rust SDK, Typescript SDK, and the PySui SDK. We hope you find the potential of Transfer to Object as endless as we do. Happy building!!