# Transaction Verification Algorithm (TVA)

Transaction Verification Algorithm (TVA):

1. Proof-of-Existence of sender and receiver
   1. Check if address exists in local Actor DB (should be done for sender and receiver);
   2. Check digital signature of transaction (done for sender) via EdDSA algorithm;
   3. Check sender status (user or smart contract);

If at least one step fails, transaction will be denied.

1. Proof-of-Existence of entities:
   1. Sender and receiver balances (in blockchain);
   2. Edited directories and files (in ExDFS);
2. Proof-of-Allowance:
   1. Sender and receiver balances are >= 0 after transaction (in blockchain);
   2. Edited or created file is in ownership of sender or sender is marked as editor for the file (in ExDFS);

If all proofs are true, transaction is verified and put into block.

![TVA Scheme](/files/-Ma2xKvJ83rVKjhfm5-Q)

Each verifier put its ID and signature in the block.

Block is distributed by verifiers via network.

Network neighbors of verifiers check created blocks and approve their consistence. They become “approvers”.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.extrachain.io/exconsensus/transaction-verification-algorithm-tva.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
