From the ERC20Upgradeable docs: "We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning false on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. "

From the SafeERC20Upgradeable contract: "Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful."

My Question: Seems that if I use the ERC20Upgradeable token I don't need the SafeERC20Upgradeable wrapper in my contracts anymore, or am I misunderstanding something?

1 Answer 1


I believe they are completely different things.

ERC20Upgradeable is a basis contract that you can build on top to make your own ERC20 token.

SafeERC20Upgradeable is a library you can use to interact with others ERC20 contracts. This is actually the same as SafeERC20.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.