Skip to main content

Overview

Reserve Folio supports standard ERC20 tokens but has specific compatibility requirements and limitations. Understanding which token types are supported is critical for safe Folio operation.
Using incompatible tokens can lead to loss of funds, broken accounting, or security vulnerabilities.

Compatibility Matrix

Folio Collateral

StakingVault

Unsupported Token Types

What it is: Tokens with multiple addresses or entry points for the same underlying asset.Why not supported: Breaks accounting assumptions about token identity and balance tracking.Examples: Some proxy tokens with multiple interfaces
What it is: Tokens that can be paused globally or have address-specific blocklists.Why not supported: Can freeze Folio operations indefinitely, making rebalancing impossible and trapping user funds.Examples: USDC (has blocklist), USDT (has pause functionality)
Even though USDC and USDT are widely used, their blocklist/pause features make them risky for Folios. Use wrapped or bridge versions with these features removed if available.
What it is: Tokens that deduct a fee on every transfer.Why not supported: The Folio’s accounting expects received amounts to match sent amounts. Fee-on-transfer breaks this assumption.Examples: SafeMoon, reflection tokens
What it is: Tokens that make callbacks to sender/receiver during transfers.Why not supported: Creates reentrancy vectors that could be exploited.Examples: ERC777 tokens with hooks
What it is: Tokens whose balances change over time without transfers.Why not supported in StakingVault: The staking vault requires stable balances for reward distribution calculations.Note: Rebasing tokens ARE supported in Folio collateral (see below).

Supported with Caveats

Rebasing Tokens (Folio Only)

Both upward-rebasing and downward-rebasing tokens are supported as Folio collateral.
Important LimitationsThe Folio’s accounting for bought and sold token amounts relies on differences in token balances. This means:
  1. Sold/bought amounts may be misreported if balance changes come from rebasing rather than transfers
  2. Non-incremental rebasings (sudden large changes) can cause outsized accounting deviations
  3. Continuous small rebases are generally handled better than infrequent large rebases
Best Practice: Use rebasing tokens cautiously and monitor for accounting discrepancies. Prefer wrapper tokens that convert rebasing to non-rebasing (e.g., wstETH instead of stETH).

Non-Standard Return Values

Fully Supported

The Folio uses SafeERC20 patterns and handles:
  • Missing return values (e.g., USDT)
  • Boolean return values that don’t revert on failure
  • Non-standard success indicators

Zero-Value Transfer Reversion

Fully Supported

Some tokens revert on zero-value transfers. The Folio is designed to handle this behavior correctly.

Flash Mintable Tokens

Fully Supported

Tokens with flash mint capabilities are fully supported. The Folio’s reentrancy guards and state management handle these correctly.

Reentrancy Protection

The Folio itself is not susceptible to reentrancy attacks due to built-in protections.
Read-Only Reentrancy RiskWhile the Folio is protected, consuming protocols may be vulnerable to read-only reentrancy.To check for reentrancy:
All Folio mutator calls are nonReentrant and close async actions as a pre-hook.

Trusted Filler Considerations

If trusted fillers are enabled for a Folio, additional token restrictions may apply.

External Filler Requirements

When trusted fillers are enabled, tokens must also be supported by the external trusted fillers whitelisted in the trusted filler registry.Currently Supported Filler: CoW SwapCheck the trusted filler documentation for their specific token requirements.

Token Validation Checklist

1

Check Token Contract

Verify the token is a standard ERC20 without exotic features.Review the token’s contract code or audit reports.
2

Verify Decimals

Confirm token decimals are within valid ranges:
  • Folio collateral: ≤ 27 decimals
  • StakingVault: ≤ 21 decimals
3

Test Transfers

Test that transfers work as expected:
  • No fee-on-transfer
  • No pause functionality
  • No blocklists affecting the Folio address
4

Check for Rebasing

Determine if the token is rebasing:
  • If yes and using in StakingVault: ❌ Not supported
  • If yes and using in Folio: ⚠️ Supported with caveats
5

Verify Supply

Ensure total supply is well below 1e36 and unlikely to exceed it.
6

Test Edge Cases

Test zero-value transfers and other edge cases if relevant.

Common Token Examples

Compatible Tokens

WETH

Fully compatible - standard ERC20 wrapper

DAI

Fully compatible - standard ERC20

WBTC

Fully compatible - standard ERC20 with 8 decimals

wstETH

Fully compatible - non-rebasing wrapper for stETH

Incompatible Tokens

USDC

Has blocklist functionality - risky

USDT

Has pause and missing return values - risky

stETH

Rebasing token - use with caution

SafeMoon

Fee-on-transfer - not supported

Valid Ranges

Token supply and decimal limits

Security

Security audits and considerations

Basket Management

Adding and removing tokens from Folios