Snowball Docs
AppDiscordTwitterMedium
  • 👋Welcome
    • Introduction
    • Roadmap
  • 🗳️Governance
    • SNOB
    • xSNOB
      • Gauges
      • Reward Boosting
      • Revenue Sharing
    • Community Proposals
  • 📈Our Products
    • Compounding
    • NFT Marketplace
    • Axial
    • Lava
    • Teddy
  • ❓FAQ
    • General FAQ
    • Compounding FAQ
    • xSNOB FAQ
  • 🎓DeFi University
    • Introduction
    • 1st Year Courses
      • FN 101 - Decentralized Finance
      • FN 102 - Wallets
      • FN 103 - Block Explorers
      • FN 104 - Tokens
      • FN 106 - Gas Fees
      • YF 111 - Lending Markets
      • YF 121 - Liquidity Pools
      • GV 141 - DAOs
      • EX 151 - Spotting Scams
    • 2nd Year Courses
      • FN 205 - Bridges
      • FN 207 - Apps vs Dapps
      • FN 209 - Avalanche
      • FN 222 - DEXs
      • FN 231 - Stablecoins
      • GV 242 - Voting Mechanisms
      • YF 261 - Auto-Compounding
      • EX 271 - NFTs
      • EX 272 - The Metaverse
      • EX 281 - DeFi Composability
    • 3rd Year Courses
      • FN 308 - Consensus Mechanisms
      • YF 312 - Folding
      • FN 317 - Infinite Approvals
      • YF 323 - Impermanent Loss
      • EX 325 - Single-Asset vs LP Strategies
      • YF 362 - Liquid Staking
    • 4th Year Courses
      • YF 424 - LP Math
      • YF 425 - One-Sided Stable LPs
  • 🗃️Resources
    • Our Team
    • Brand Assets
    • Guides
      • Setting Up MetaMask
      • Depositing into Compounding Strategies from Trader Joe
      • Depositing into Compounding Strategies from Pangolin
      • Staking SNOB for xSNOB
      • Unstaking SNOB
      • Voting on Gauges with xSNOB
      • Manual Smart-Contract Interaction
      • Bridge FRAX to Avalanche
      • MetaMask Security Measures
    • DeFi Glossary
  • 💻Smart Contracts
    • Snowball Contracts
    • Compounding Contracts
    • Deprecated Contracts
    • NFT Contracts
    • Audits & Timelocks
    • Multisigs
  • 🔗Links
    • Website
    • Discord
    • Twitter
    • Telegram
    • Medium
    • GitHub
Powered by GitBook
On this page
  • Introduction
  • Infinite Approvals
  • Managing Approvals
  • Closing Thoughts
Edit on GitHub
  1. DeFi University
  2. 3rd Year Courses

FN 317 - Infinite Approvals

PreviousYF 312 - FoldingNextYF 323 - Impermanent Loss

Last updated 3 years ago

Most decentralized applications utilize infinite token approvals for everyday user transactions. This course will cover everything you need to know about these:

  • Defining Token Approvals

  • Evaluating The Risks of Infinite Approvals

  • Managing Token Approvals

Suggested Prior Reading:

Introduction

The method with which decentralized applications (dapps) can transfer tokens from your wallet is through approvals - a permission you are personally granting to the application's smart contract. When calling the 'approve' function of a token, you are allowing another smart contract to transfer X amount of tokens from your wallet. When a transfer takes place, the amount of tokens transferred is subtracted from the amount you allowed the contract to transfer on your behalf.

For example, if you allow a decentralized exchange to spend 10 AVAX tokens, and you trade 6 AVAX for SNOB, you will still have an allowance of 4 AVAX on the exchange's smart contract.

There are currently two popular methods of requesting user approval prior to making transactions - either requesting the exact amount the user plans to transfer, or an infinite amount.

Snowball offers both approval methods - not selecting infinite approvals by default.

Infinite Approvals

In practice, requesting an infinite amount of tokens involves simply asking the user to approve an extremely large number of tokens to the dapp's smart contract. While these approvals have been used in scams, they are most commonly used in large, real and trusted applications, mostly for one simple reason:

With infinite approvals, you will only need to approve a token's expenditure once. This means significantly less transactions and gas fees for a dapp that you might utilize on a consistent basis.

Managing Approvals

Given the presented trade-off, there are many ways of managing your finances appropriately with a risk level that is comfortable to you. A wallet with a small amount of funds can be used with infinite approvals with little risk, thus potentially avoiding a large amount in transaction fees, and being a little easier to use in day-to-day activities.

However, if you have a wallet address with a large percentage of your assets, it is likely you'll want to simply approve exactly what you are transacting at any given time. This means that once you have transacted your tokens, your approval amount for any given contract will be of 0.

Closing Thoughts

Token approvals can present an unexpected risk factor to your funds, thus keeping them in check is highly advisable. Decentralized apps should take user safety extremely seriously, and it is a good sign that more dapps are opting for limited approvals by default over time. Stay safe out there!

The issue behind this feature is that it is a significant trade-off between convenience/cost and security. It is given that smart contracts are immutable and can only act according to their code, hopefully transparent and verified on a block explorer. Regardless, there are instances where bugs and found and exploited. An example of such can be found .

Similarly, for infinite approvals you have granted previously, you can manually assign those approval amounts to 0. This can be done on Avalanche through , which is also covered in our guide . Other block explorers from other chains also offer this functionality, and there are also some third-party apps that may accomplish this.

🎓
FN 101 - Decentralized Finance
FN 104 - Tokens
FN 106 - Gas Fees
here
SnowTrace
here