# Transaction lifecycle

Smart contracts interact with transaction during transaction lifecycle as described in the following diagram:

![](https://333960583-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LepV15oUYUS9vuDuWqa%2F-Lo4JOMnB8kE8L8aYHF3%2F-Lo4JRuoeZ21RtZ_eUM_%2FTransaction%20flow%20\(2\).png?alt=media\&token=d92bd5c8-9c13-4457-9ee7-2f44568c7838)

Transaction lifecycle steps.

1. Client signs transaction and sends it to API endpoint /api/events/add/event={encoded transaction}
2. Transaction is received by node.
3. Blockchain node checks that the state of transaction is consistent with the blockchain state and transaction is signed properly. If not - rejects transaction.
4. Node checks if there is a smart contract associated with space specified in `space` transaction field. If there is no such smart contract - transaction is approved.
5. In the case smart contract is found, node executes `confirm` method. If the result is true - transaction is approved, otherwise rejected.
