> For the complete documentation index, see [llms.txt](https://docs.carbondefi.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.carbondefi.xyz/contracts-and-functions/carboncontroller-functions/write-functions/transaction-prerequisites.md).

# Transaction Prerequisites

Before interacting with any blockchain smart contract, approval must be granted by the user for use of their tokens.&#x20;

The options to grant approval include:

* [approve()](/contracts-and-functions/carboncontroller-functions/write-functions/transaction-prerequisites/approve-allowance.md)
* [allowance()](/contracts-and-functions/carboncontroller-functions/write-functions/transaction-prerequisites/approve-allowance.md)
