> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.finrock.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Contract Addresses

> Why Finrock blocks withdrawals to smart contract addresses by default, covering security, gas and compliance, and how to change the setting.

Withdrawals to contract addresses

Finrock does not allow withdrawals to smart contract addresses by design. This policy helps protect your funds, keep costs predictable, and support compliance obligations.

## Security

* Smart contracts are not normal wallets and often require specific functions to receive funds. If you send funds directly from your wallet to a contract, they can become stuck and unrecoverable.
* Many contracts can be upgraded, paused, or exploited. Blocking direct withdrawals to them reduces the chance your payout ends up in a vulnerable or malicious contract.

## Gas fees and failed transactions

* Sending to contracts usually costs more gas than sending to regular wallets because the contract code must run on-chain. This can make withdrawals unexpectedly expensive.
* Contract calls can also fail due to incorrect or inadequate parameters or logic, but you still pay gas. By only allowing simple transfers, you can keep fees clearer and reduce failed, chargeable transactions.

## Compliance and transparency

* Regulations increasingly require businesses to know who they are sending funds to and from. Smart contracts typically do not represent identified customers or businesses.
* Once funds go into complex DeFi contracts or mixers, they are harder to trace and monitor. Restricting withdrawals to regular wallets helps Finrock and its clients maintain stronger AML, sanctions, and audit controls.

## General Advice

* If your customers want to interact with smart contracts, they can first withdraw from your wallet to their wallet, then connect that wallet to DeFi apps or other contracts under their own policies and risk controls.
* If you still wish to send funds to contract addresses, you can change this setting for each sub-account.

## Allow withdrawals to contract addresses

**1. Open Sub Accounts**

In the Finrock dashboard, go to **Settings** and select **Sub Accounts**. Each sub-account shows its **Withdrawal Rules**, including whether **Contract Addresses** is **ON** or **OFF**.

**2. Manage the sub-account**

Click **Manage** on the sub-account you want to change.

**3. Turn on contract addresses**

In **Manage Sub Account**, turn on **Allow Contract Addresses**. To block them again, turn it off.

**4. Submit and get approval**

Click **Submit**. The change takes effect once the owner, or at least 2 admins, approve it.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.