account.tech docs
  • Account.tech Documentation
  • Overview
    • Context
    • Stack Components
  • Design Philosophy
  • Move Framework
    • Concepts
      • Smart Accounts
      • Intents
      • Actions
      • Dependencies
      • Managed Assets
      • User
  • Implementation
    • Smart Account
    • Intent and Action
  • Packages
  • Move Registry
    • Multisig
  • DAO
  • Typescript Library
    • Untitled
  • Typescript SDKs
    • Untitled
Powered by GitBook
On this page
  1. Move Framework
  2. Concepts

Managed Assets

Unlike owned objects, managed assets are deliberately deposited into an Account and handled with custom logic. Smart Account objects have the same capabilities as standard Sui accounts to receive and transfer objects (via intents), but they provide additional functionality.

The framework defines "managed assets" as objects attached as dynamic object fields to an account, and "managed data" as arbitrary structs that can be associated with assets using dynamic fields.

Both are differentiated to enable object discovery. We recommend that developers define custom types to use as dynamic (object) field keys to prevent abuse.

Using these dynamic (object) field wrappers, developers can define interfaces with custom behavior for specific assets, containers, or other objects.

For example, the framework defines Vaults as managed containers (Bag) where only Coins can be added. It also allows developers to deposit and lock UpgradeCaps with a TimeLock. In this case, upgrade execution must wait for the specified delay. Additionally, the framework provides rules for TreasuryCaps that are not available in the core Sui Framework, such as disabling minting or setting a fixed supply.

With managed assets, developers define how an Account interacts with different object and struct types, providing more control than with owned objects.

PreviousDependenciesNextUser

Last updated 7 days ago