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.

