🤖
UP Assistants
UP Assistants Web
  • UP Assistants: Digital Assistants For Everyone
  • Getting Started
    • Quickstart
    • UP Assistant Usecases
    • Supported Blockchains
    • Catalog page
    • Global Settings page
    • Wallets
  • Developers
    • Overview
    • Protocol Architecture
    • Transaction flow
    • Creating assistants
    • Deployment
    • Future proposal: Screener Assistants
Powered by GitBook
On this page
  1. Developers

Transaction flow

PreviousProtocol ArchitectureNextCreating assistants

Last updated 3 months ago

Detailed Universal Assistant Protocol Transaction Flow


Flow Explanation

  1. User Initiates Transaction:

    • A User sends a transaction to a Universal Profile (UP) (i.e. interacts with an LSP7/LSP8 token contract to transfer tokens).

    • The token contract calls the UP’s Universal Receiver function with typeId and data.

  2. UP Delegates to URDuap:

    • The UP forwards the call to the URDuap (universalReceiverDelegate(...)).

  3. URDuap Fetches Executive Assistants:

    • URDuap reads from the ERC725Y data store using a key like UAPTypeConfig:<typeId>.

    • This key contains an encoded list of Executive Assistant addresses.

  4. URDuap Invokes Each Executive Assistant:

    • For each Executive Assistant in the list, URDuap calls execute(...) within the same transaction context.

    • The Assistant returns operation instructions (e.g., IERC725X.execute(...)) plus possibly updated value and data.

    • URDuap then executes those instructions on the UP’s behalf.

    • This may include external interactions with third-party contracts.

  5. Fallback to LSP1:

    • If no Executive Assistants are configured or none are invoked, URDuap calls the default LSP1 delegate.

    • Finally, URDuap returns control to the UP, completing the transaction.