> For the complete documentation index, see [llms.txt](https://docs.bancor.network/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bancor.network/developer-guides/write-functions/transaction-prerequisites/approve-allowance.md).

# approve() / allowance()

Give permission for a contract to access your wallet

### approve() / allowance()

Allowance functions give permission for a contract to access your wallet and interact with (withdraw) tokens you hold.

Approval or allowance must be set prior to any transactions.&#x20;

{% hint style="info" %}
The first step in execution for smart contracts is typically for the contract to withdraw tokens from the requestor's wallet. Thus, in order to enable this, allowance must be set prior to the transaction.
{% endhint %}

[Read more about allowance functions and functionality](https://eips.ethereum.org/EIPS/eip-2612).
