|
| 1 | +--- |
| 2 | +title: Deprecation of the Optimism SDK |
| 3 | +lang: en-US |
| 4 | +description: This page outlines the details of the Optimism SDK deprecation and guides developers to migrate to using `viem` library. |
| 5 | +--- |
| 6 | + |
| 7 | +## Preparing for Optimism SDK deprecation |
| 8 | + |
| 9 | +The Optimism SDK will officially be deprecated in Q1 2025. The project is shifting to the `viem` library for a more modern, efficient, and flexible development experience. This change affects all tutorials and resources that previously relied on the Optimism SDK, and relevant documentation has been updated accordingly. |
| 10 | + |
| 11 | +### Breaking changes to expect |
| 12 | + |
| 13 | +The migration from the Optimism SDK to `viem` library brings several breaking changes: |
| 14 | + |
| 15 | +* **Transaction estimation**: Methods for estimating gas fees will now leverage `viem` APIs. |
| 16 | +* **Bridging**: All token bridging actions must be updated to use the `viem` library bridging methods. |
| 17 | +* **Cross-chain communication**: `viem` library simplifies the cross-domain messaging functionality. |
| 18 | +* **SDK method removal**: All deprecated SDK methods will be unavailable after Q1 2025. |
| 19 | + |
| 20 | +Developers and users are strongly encouraged to transition to `viem` before the deprecation date to avoid disruptions. |
| 21 | + |
| 22 | +### Updated tutorials |
| 23 | + |
| 24 | +We are updating our tutorials to use the `viem` library. |
| 25 | + |
| 26 | + {/* Below, you'll find links to the updated versions of popular tutorials: |
| 27 | +
|
| 28 | +* [Estimating Transaction Costs on OP Mainnet](../tutorials/transaction-cost-estimation)\ |
| 29 | + Estimation of transaction costs now uses the `viem` gas estimation utilities. |
| 30 | +
|
| 31 | +* [Triggering OP Mainnet Transactions from Ethereum](../tutorials/trigger-op-transactions)\ |
| 32 | + Learn how to trigger transactions using `viem` to interact with the OP Mainnet. |
| 33 | +
|
| 34 | +* [Tracing Deposits and Withdrawals](../tutorials/tracing-deposits-withdrawals)\ |
| 35 | + The tracing functionalities have been adapted to use `opstack` for efficient results. |
| 36 | +
|
| 37 | +* [Viewing Deposits and Withdrawals by Address](../tutorials/view-deposits-withdrawals)\ |
| 38 | + This tutorial outlines updated methods in `viem` for querying deposits and withdrawals by address. |
| 39 | +
|
| 40 | +* [Bridging Your Standard ERC-20 Token Using the Standard Bridge](../tutorials/bridge-standard-erc20)\ |
| 41 | + The standard bridge tutorial now uses `opstack` for token transfers between Ethereum and OP Mainnet. |
| 42 | +
|
| 43 | +* [Bridging Your Custom ERC-20 Token Using the Standard Bridge](../tutorials/bridge-custom-erc20)\ |
| 44 | + Custom ERC-20 tokens can now be bridged via `opstack`, making the process more streamlined. |
| 45 | +
|
| 46 | +* [Bridging ERC-20 Tokens to OP Mainnet With the Optimism SDK](../tutorials/bridge-sdk-erc20)\ |
| 47 | + **Deprecated** – please use [Bridging Your Custom ERC-20 Token Using the Standard Bridge](../tutorials/bridge-custom-erc20). |
| 48 | +
|
| 49 | +* [Bridging ETH to OP Mainnet With the Optimism SDK](../tutorials/bridge-sdk-eth)\ |
| 50 | + **Deprecated** – please use [Estimating Transaction Costs on OP Mainnet](../tutorials/transaction-cost-estimation). |
| 51 | +
|
| 52 | +* [Communicating Between OP Mainnet and Ethereum in Solidity](../tutorials/cross-chain-solidity)\ |
| 53 | + Cross-chain communication now leverages `opstack` for all messaging. */} |
| 54 | + |
| 55 | +### For app developers |
| 56 | + |
| 57 | +If your application currently depends on the Optimism SDK, you will need to migrate to using the `viem` library. |
| 58 | +The tutorials have been updated to reflect these changes, and it is critical to update your applications before the deprecation date to maintain compatibility. |
| 59 | + |
| 60 | +Here are some key points to consider: |
| 61 | + |
| 62 | +Install new dependencies: Replace the Optimism SDK with `viem` in your project. |
| 63 | + |
| 64 | +```bash |
| 65 | + pnpm remove @eth-optimism/sdk |
| 66 | + pnpm add viem |
| 67 | +``` |
| 68 | + |
| 69 | +* Update imports: Replace Optimism SDK imports with `viem` imports. |
| 70 | +* Migrate SDK methods: Refactor your code to use equivalent `viem` methods. Refer to the viem documentation and opstack documentation for guidance. |
| 71 | +* Test thoroughly: After migration, extensively test your application to ensure all functionality works as expected. |
| 72 | + |
| 73 | +### For chain operators |
| 74 | + |
| 75 | +Chain operators utilizing the SDK for cross-chain operations, bridging, or other functions should switch to the `viem` library. |
| 76 | +The `viem` library offers more efficient methods to handle these operations. |
| 77 | + |
| 78 | +Chain operators should be aware of the following: |
| 79 | + |
| 80 | +* SDK removal: Remove any dependencies on the Optimism SDK in your infrastructure. |
| 81 | +* Update tooling: Ensure all tools and scripts are updated to use `viem`. |
| 82 | +* Monitor performance: After migration, closely monitor your chain's performance to ensure smooth operation. |
| 83 | + |
| 84 | +### For node operators |
| 85 | + |
| 86 | +Node operators will need to ensure that any scripts or services relying on the Optimism SDK are updated to use `viem` library. |
| 87 | +These updates will help align with future improvements and scalability efforts across the OP Stack. |
| 88 | + |
| 89 | +Node operators should take the following steps: |
| 90 | + |
| 91 | +* Update node software: Ensure your node software is compatible with the latest `viem` libraries. |
| 92 | +* Review configuration: Check and update any configuration files that may reference the Optimism SDK. |
| 93 | +* Test thoroughly: Perform comprehensive testing in a staging environment before updating production nodes. |
| 94 | + |
| 95 | +### Need Help? |
| 96 | + |
| 97 | +For further assistance or questions about this migration, feel free to reach through the following channels: |
| 98 | + |
| 99 | +* Join our [community forum](https://community.optimism.io/) for discussions and support |
| 100 | +* Connect with us on [Discord](https://discord.gg/optimism) for community support |
| 101 | +* Open an [issue on our GitHub repository](https://github.com/ethereum-optimism/docs/issues) for documentation-related concerns |
0 commit comments