Skip to content

Account

Native accounts on Concordium are created through an Account Creation transaction.

ccdexplorer.grpc_client.CCD_Types.CCD_AccountInfo

Information about the account at a particular point in time.

GRPC documentation: concordium.v2.AccountInfo

Attributes:

Name Type Description
sequence_number CCD_SequenceNumber

Next sequence number to be used for transactions signed from this account.

amount microCCD

Current (unencrypted) balance of the account.

schedule CCD_ReleaseSchedule

Release schedule for any locked up amount. This could be an empty release schedule.

creds dict[int, CCD_AccountCredential]

Map of all currently active credentials on the account. This includes public keys that can sign for the given credentials, as well as any revealed attributes. This map always contains a credential with index 0.

threshold CCD_AccountThreshold

Lower bound on how many credentials must sign any given transaction from this account.

encrypted_balance CCD_EncryptedBalance

The encrypted balance of the account.

encryption_key CCD_EncryptionKey

The public key for sending encrypted balances to the account.

index CCD_AccountIndex

Internal index of the account. Accounts on the chain get sequential indices. These should generally not be used outside of the chain, the account address is meant to be used to refer to accounts.

stake Optional[CCD_AccountStakingInfo]

Present if the account is a validator or delegator. In that case it is the information about the validator or delegator.

address CCD_AccountAddress

Canonical address of the account. This is derived from the first credential that created the account.

cooldowns list[CCD_Cooldown]

The stake on the account that is in cooldown.

available_balance microCCD

The available (unencrypted) balance of the account that can be transferred or used to pay for transactions.

Source code in .venv/lib/python3.13/site-packages/ccdexplorer/grpc_client/CCD_Types/__init__.py
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
class CCD_AccountInfo(BaseModel):
    """Information about the account at a particular point in time.

    GRPC documentation: [concordium.v2.AccountInfo](https://docs.concordium.com/concordium-grpc-api/#concordium.v2.AccountInfo)

    Attributes:
        sequence_number (CCD_SequenceNumber): Next sequence number to be used for transactions signed from this account.
        amount (microCCD): Current (unencrypted) balance of the account.
        schedule (CCD_ReleaseSchedule): Release schedule for any locked up amount. This could be an empty release schedule.
        creds (dict[int, CCD_AccountCredential]): Map of all currently active credentials on the account. This includes public keys that can sign for the given credentials, as well as any revealed attributes. This map always contains a credential with index 0.
        threshold (CCD_AccountThreshold): Lower bound on how many credentials must sign any given transaction from this account.
        encrypted_balance (CCD_EncryptedBalance): The encrypted balance of the account.
        encryption_key (CCD_EncryptionKey): The public key for sending encrypted balances to the account.
        index (CCD_AccountIndex): Internal index of the account. Accounts on the chain get sequential indices. These should generally not be used outside of the chain, the account address is meant to be used to refer to accounts.
        stake (Optional[CCD_AccountStakingInfo]): Present if the account is a validator or delegator. In that case it is the information about the validator or delegator.
        address (CCD_AccountAddress): Canonical address of the account. This is derived from the first credential that created the account.
        cooldowns (list[CCD_Cooldown]): The stake on the account that is in cooldown.
        available_balance (microCCD): The available (unencrypted) balance of the account that can be transferred or used to pay for transactions.
    """

    address: str
    amount: microCCD
    stake: Optional[CCD_AccountStakingInfo] = None
    credentials: dict[str, CCD_AccountCredential]
    encrypted_balance: CCD_EncryptedBalance
    encryption_key: str
    index: int
    schedule: Optional[CCD_ReleaseSchedule] = None
    threshold: int
    sequence_number: Optional[CCD_SequenceNumber] = None
    available_balance: Optional[microCCD] = None
    cooldowns: Optional[list[CCD_Cooldown]] = None
    tokens: Optional[list[CCD_Token]] = None

How is an account stored in the system?

Technically, we do not store the account with all info in the db itself, only in the collection all_account_addresses a new entry is stored. This is performed in the New Address Service, that works on receiving the appropriate MQTT message.