Accounts

Core Principles

  • Account (Contract) – a record in the distributed database that includes the balance, code, and data.

  • All user, application, and system logic and state are stored in contracts.

  • Each contract is an account capable of sending messages, executing code, holding funds, and creating other contracts.

  • Contracts can interact with other contracts asynchronously.

  • Accounts are identified and grouped using Dapp ID.

Dapp ID is a unique identifier for a logical application, linking together contracts that operate within the same Dapp.

Before diving into building a Dapp, it’s recommended to first understand the basic principles of how blockchain works, as well as the architecture and decentralization mechanisms of the Acki Nacki network.


Purpose of Dapp ID:

  • Represents a logical "group of accounts" (contracts) acting as a single application

  • Used for message routing and execution priority management

  • Enables transaction subsidization and freemium models

  • Simplifies state and balance management across the entire Dapp


Dapp ID Assignment Rules:

  • Every initialized and active contract has a Dapp ID.

  • If a contract is created directly (via an external message), its Dapp ID matches its own address.

  • If a contract is created by another contract (via an internal message), it inherits the Dapp ID of its creator.


You can learn how to create your first Dapp using this guidearrow-up-right.

Last updated