Skip to main content

πŸš€ Entendre Overview

A general summary of each page in Entendre with definitions of fields and variables .

Updated over a year ago

Object Model


Entendre’s data model consists of all primitives required to automate the reporting and bookkeeping for Web3 business activity.

Organization (i.e. platform)


An Organization is the top level object that represents a company, including its corporate structure. It stores global settings, user data, billing are stored at the organization level.

Admin users will have the access to update the properties of an Organization. This currently includes the following:

  • Global settings - configure timezones, logo, and sub-domain

  • Notifications - configure frequency of email and in app notifications

  • Spam list - configure what assets to blacklist or whitelist from transaction import

  • Billing - access to pay invoices, update subscription and payment methods

  • User management - ability to invite team users, assign roles and remove users

Furthermore, users can belong to more than one organization. This is relevant to users that manage the accounting of multiple organizations, like accounting firms or auditors.

Legal Entity


A legal entity represents an organization's corporate structure. Each entity has its own sub-ledger, which includes a unique set of transactions, sources, balances, entries, and other specific objects like journal entry template lines or rule sets.

Each legal entity must have a default currency. All transactions, journals, financial reports, and currency-denominated values are displayed in this currency. For organizations with multiple entities, each legal entity may have a different currency. If balances or other values are aggregated across entities with different currencies, an error will occur without specifying a target reporting currency.

Ledger Accounts


A ledger account, capable of being debited or credited by Journals, yields a balance for each accounting period. There are five types of ledger accounts: Income, Expense, Asset, Liability, and Equity. A ledger account type can be classified as either credit normal or debit normal. Income, Equity, and Liability accounts fall under the credit normal category, meaning that their balance increases with credits. Assets and Expense accounts fall under debit normal, meaning their balances increases with debits.


Root accounts serve as the initial ledger account for each type, and they can't have a parent. A ledger account may have a child account, and these child accounts can also have child accounts. Additionally, each ledger account is assigned a sequence number that must adhere to a sequential numbering scheme.


Notably, asset accounts can also function as "clearing" accounts, serving as pass-through accounts. This is relevant for entries that keep the net worth of Balance Sheet Accounts types unchanged in the ledger.


Sources


Sources are accounts capable of holding, sending, or receiving funds. Sources belonging to an organization are classified as internal sources. External sources refer to accounts that interact with an organization's internal sources through debits or credits. Internal sources can include wallets, exchanges, and other third-party integrations that allow transaction imports.


All internal sources should be linked to a specific legal entity. This link ensures that the entity's information is propagated throughout the system in transactions, entries, and balances. Each internal source can be associated with only one legal entity and can import transactions based on a custom look-back period. Once an internal source is linked to a specific legal entity, it can't be linked again to the same or a different entity.


Every source type needs to have an alias, specified chain(s), and an address. Tags are optional objects that can be added to group sources together. They simplify conditions within ledger posting rules and assist with filtering.

Operational Transactions


Operational Transactions are records imported from internal sources. These transactions will have metadata pertaining to the transaction itself and relationship to other objects such as the source and legal entity it belongs to. When an operational transaction is accounted it for it will have an associated journal entry attached to it.

Transactions may require adjustments before accounting. A transaction could be flagged as spam, have its cost basis or category updated, or have its external address saved as an external source. These actions can also be done in bulk by specifying which transactions should receive the adjustments.


Transactions have the following categories:

  • Internal Transfer: This involves a credit or debit from one internal source to another within the same legal entity.

  • Inter-company Transfer: This is a credit or debit from one internal source to another between two different legal entities within an organization.

  • Fee: This is a transaction where the internal wallet is debited to pay an on-chain network (gas) fee.

  • Swap: This involves a credit or debit that swaps one token for another within an internal wallet.

  • Deposit: This is a credit into an internal wallet.

  • Withdrawal: This is a debit from an internal wallet.

  • NFT: This is a debit or credit to an internal source involving an NFT asset being deposited or withdrawn.

  • Mint: This involves any credit into an internal source that comes from a 0x000000000000000000000000000000000000000 address.

  • Burn: This involves any debit from an internal source to a 0x000000000000000000000000000000000000000 address.

  • Bridge: This includes any debit or credit for transactions from an internal source that move assets between different chains, such as sending USDC from Ethereum to Avalanche.

  • Unknown: For transactions that haven’t been categorized or have yet to be categorized

Journals


Journals correspond to each accounting transaction associated with operational transactions. Each journal possesses entry lines, derived either from a Journal Entry Template or a manual entry. These entry lines debit and credit specific ledger accounts, updating the balance for the journal's Accounting Period. Notably, a journal doesn't always require an operational transaction. For instance, when an Impairment Rule is run, the resulting journals lack an operational transaction because they record changes to the cost basis of Asset Records.

Journal have specific status that can allow for updates to balances:

  • Draft: No balance impact until posted and can be deleted.

  • Posted: Updates the balance based on the credit and debit amounts on the journal entry lines.

  • Unposted: Update the balance by unwinding the credits and debits of the journal.

  • Reversed: Updates the balance by creating a new journal with the oppposite credits and debits of the journal.

Unposting is typically done to correct errors or make adjustments to an entry. For example, if a mistake was made in a journal entry (e.g., an incorrect amount was recorded), you would unpost the entry to correct the error.

After unposting a journal entry, you can make the necessary corrections and then repost the corrected entry to the general ledger.

When you reverse a journal entry, you create a new journal entry that is the exact opposite (in terms of debits and credits) of the original entry. This effectively cancels out the original entry in the current period.

For a journal entry to be balanced, it must adhere to the fundamental principles of double-entry accounting. In double-entry accounting, every transaction affects at least two accounts, and the total debits must equal the total credits. Below are the key requirements for balanced entries.

  1. Equal total debits and credits: The sum of all debit amounts in the journal entry must equal the sum of all credit amounts. In other words, the debits and credits must balance each other.

  2. Two or more accounts affected: A balanced journal entry must involve a minimum of two different accounts. One account is debited, and another account is credited. It is common for journal entries to involve more than two accounts when complex transactions are recorded.

  3. Debits and credits must follow accounting rules:

    • Debits increase assets, expenses, and losses.

    • Credits increase liabilities, equity, revenue, and gains.

  4. Debits and Credits must be of equal amount: The dollar (or currency) amounts associated with the debit and credit entries must be equal. The numerical value of the debit and credit entries should match.

Journal Entry Templates


Journal entry templates are predefined entries that use dynamic variables to fill in the values of a real journal entry at the time of creation. These variables can be used for template memos and journal entry template lines. The following are the current journal entry line variables that can be used in the amount field: Gross Amount: This refers to the gross value of the transaction.

  • Net Amount: This is the net value of the transaction.

  • Fee Amount: If applicable, this is the fee value of the transaction, commonly seen in network fee transactions and trading fees from centralized exchanges.

  • Realized Gain Loss (+/-): This is the difference between the value of a transaction and the cost basis. It can be either negative or positive.

  • Realized Gain Loss (Absolute Value): This is the difference between the value of a transaction and the cost basis, expressed as an absolute value.

  • Asset Cost Basis: This refers to the cost basis of the asset in the asset queue used to replace the gross or net amount of a transaction. It's especially relevant for internal transfers, where the cost basis should be used to prevent changes to the net worth of the business due to transfers between internal accounts.

  • Impairment Amount: This is the difference between the value of a transaction and the cost basis of the asset in the asset queue. It's populated when the impairment engine runs.

  • Swap Fee: This is calculated by taking the difference between the debit transactions and credit transactions of a swap, and it's used to calculate the slippage or decentralized exchange fees.

Ledger Posting Rulesets


A ruleset is a collection of Ledger Posting Rule or Impairment Rule. It contains rules that a user configures using Conditions to identify matches. A match occurs when all conditions for a rule are satisfied before and after an "and" operator or if all conditions after an "or" operator are met. Each ruleset must have a name and a legal entity assigned to it.

Rulesets can be run either on a recurring schedule or on an ad-hoc basis. When a ruleset is scheduled, it processes transactions without any accounting from the time it last ran (either manually or scheduled) until the current run. Ad-hoc runs can either overwrite previous matches, if specified by the user, or filter for transactions that lack accounting.

A transaction may lack accounting if it had no matches or if a ruleset with a match hasn't run yet. Once a match is found, the accounting will be provided by the journal entry template associated with the rule.

Ledger Posting Rules


A ledger posting rule handles transaction processing for matches. Each rule consists of a name, a journal entry template, and conditions. When these conditions are fulfilled, the template is used to generate a journal entry with accurate dynamic values derived from template variables. Rules can be moved to different rulesets or duplicated for expedited configuration.

Conditions are the most customizable part of both ledger posting and impairment rules. Their purpose is to create journal entries on behalf of users. Depending on the type, different condition options can be chosen.

Here are the conditions applicable to ledger posting rules:

  • Assets: These are tokens in the user's account based on imported transactions.

  • Chains: These are the chains supported by Entendre and are predetermined.

  • Legal Entity: This refers to the legal entity involved in the transaction.

  • Sources: These include internal wallets, external wallets, and connected exchanges that are credited or debited for the transaction.

  • Transaction (Amount): This refers to the gross amount, net amount, and fee amount of the transaction.

  • Transaction Direction: This can be a credit or debit transaction.

  • Transaction Category: This refers to the type of transaction (deposit, withdrawal, fee, spam, etc.).

  • Smart Contract Address: This is the smart contract associated with the transaction.

  • Exchange: This pertains to whether it's a supported exchange transaction (Coinbase Prime, Kraken, Circle, etc.).

  • Integration:

    • Loop: These are conditions available through the Loop integration with Entendre, including subscription name, frequency, and transfer type.

    • Rain: These are conditions available through the Rain integration with Entendre, including cards, merchants, category, type.

    • Hedgey: These are conditions available through the Hedgey integration with Entendre, including events like NFT revoked, NFT redeemed, Tokens bought.

  • (New!) Transaction Action: This refers to the function being called in the smart contract. You can select the function signature to automate recurring transactions based on the actions performed by the smart contract. See the screenshot below.

Impairment Rules


Impairment rules process Asset Records instead of operational transactions. When asset records are found as matches to an impairment rule, the corresponding journal entry template is used to record a journal. What’s unique about impairment journal entries are that they must use the template line variable that calculates gain loss. These variables are impairment amount, gain loss (absolute value) and gain loss (+/-).

Additionally, there are specific conditions only available for impairment rules because they are related to attributes found on the asset records being impaired.

  • Gain Tolerance: If the price change exceeds the tolerance

  • Loss Tolerance: If the price change does not exceed the tolerance

  • Is Impaired: True if the asset record has already been impaired

  • Is Gain: True if the price exceeds the cost basis of the asset record at the time of impairment

  • Is Loss: True if the price does not exceed the cost basis of the asset record at the time of impairment

  • Date Received: The date the asset record was received

  • Last Impaired Date On: The date of the asset records impairment

  • Ledger Accounts: The ledger account that the asset record balance belongs in

Impairment rules can be ran ad-hoc or scheduled.

Asset Records


Asset records are established when asset ledger accounts are debited. This process tracks the cost basis of each token on the balance sheet by legal entity, ledger account, and creation date. Asset records can be impaired or market-valued using impairment rules, but the original cost basis is always preserved. A new cost basis is then used for future calculations. Manual asset records can be established before the organization's first accounting period to initiate asset ledger account balances based on previous financials.

Asset records are managed in a queue. When new journal lines debit asset accounts, asset records are created and placed in the queue. When asset ledger accounts are credited, the first asset record in the queue for that particular token is dequeued for the quantity of tokens in the transaction token amount. If an asset record's quantity is reduced to zero, the next available asset record is then removed. This follows the "FIFO" (First-In-First-Out) method of determining which asset record to use to calculate gains and losses. Other methods include LIFO (Last-In-First-Out) and a tax-optimized method which prioritizes asset records with non-zero quantities that have the highest cost-basis.

However, the FIFO method has limitations. If journals are created out of sequence by transaction date, it will remove assets that were generated on different dates. This requires users to set up all desired automations in advance and execute them by period before moving on to the next period. If wallets are imported at a later date, users will need to clear their account and then account for the new wallet's transactions in sequence. This can also slow down the ability to create journals simultaneously, affecting performance.

Supported cost basis methodologies are as follows:

  • First in First Out (FIFO)

  • Last in First Out (LIFO)

  • Weighted Average Cost Basis (WACB)

  • Average Cost Basis (ACB)

Tags


Tags are used to customize filters on reports, create more flexible ledger posting rules, and enhance 3rd party integrations with added metadata. Each tag has a key value pair and keys are currently predetermined by Entendre. They are:

  • Customer

  • Supplier

  • ID

  • System

  • Bank Account

Tags can be added to sources, template lines, journal lines, and conditions. For tables with data that show balances, journal lines, sources, tags can be used to filter within Entendre.

Balance


A balance object represents the total of all debit and credit entries in a journal for a specific ledger account and Accounting Period pair. For asset, liability, and equity accounts, the starting balance can be non-zero. This is based on records from previous periods or pre-period asset records, as these types of accounts appear on the balance sheet, which is cumulative. The balances of income and expense accounts reset to zero at the beginning of each period. Once an accounting period closes, the balances are finalized. If they are cumulative, these balances become the starting point for the next period.

Accounting Period


Accounting periods denote the fiscal dates of months, quarters, or years. They have a status of either open or closed, and can only be closed once all operational transactions have been accounted for. During the closure of an accounting period any final processes that require journal entries will be prompted to the user. Once the status is changed to closed, no further changes can be made to entries or balances for that period. If there is a mistake in the journals of a closed period, the journal can be reversed and a new entry can be made in the current period. This will alter the balance in future financial statements. Additionally, when periods are closed they can integrate journals into the other accounting systems that have been connected.


User


Users are members of an organization. A user can belong to multiple organizations. When a user is added by an Admin they must accept the organization invite via email, even if they’ve done it for another organization in the past.

The roles for users are as follows:

Role

User Management

Billing Access

AI Copilot

View Reports

Import Wallets

Export Tables

Connect Integrations

Journal Updates

Close Periods

Configure

Admin

βœ…

βœ…

βœ…

βœ…

βœ…

βœ…

βœ…

βœ…

βœ…

βœ…

Accountant

❌

βœ…

βœ…

βœ…

βœ…

βœ…

βœ…

βœ…

βœ…

❌

Analyst

❌

❌

βœ…

βœ…

❌

βœ…

βœ…

❌

❌

βœ…

Auditor

❌

❌

❌

βœ…

❌

βœ…

❌

❌

❌

❌

Access to invite users will be available to Admins only in their Organization settings > Team page.

Did this answer your question?