Items on this page refer to third-party projects or products that are not
maintained by Optimism. They are provided for convenience; refer to each
project’s own documentation as the source of truth.
This page is the canonical hub for the tools and SDKs that surround the OP Stack.
Following the content guide, each listing
links exactly one canonical documentation home — this page routes, it does not
restate. What gets listed here (and what gets removed) is governed by the
listing criteria.
Support Status Levels
The Matrix
Choose an SDK Surface
Three of the rows above are TypeScript SDK surfaces that are easy to confuse.
The distinction:
- Start with
viem/op-stack. viem provides
first-class OP Stack support in the core library: extend any viem client
with publicActionsL2() (and friends) imported from viem/op-stack to get
deposits, withdrawals, and L1 gas estimation. If a feature is available
here, this is its production home.
- Reach for
@eth-optimism/viem
when you need what viem does not have yet. The package’s stated goal is
to upstream as much as possible into viem itself; until then it is the
home of Superchain interop actions and other pre-production features. The
interop tutorials
and bridging tutorials
on this site use it.
- Use the Actions SDK for app-level
building blocks, not chain plumbing. Where the two viem surfaces expose
protocol operations, the Actions SDK offers wallet, lend, and swap
namespaces for building end-user apps. It is a developer preview and not
yet ready for production use.
Using wagmi With the OP Stack
If you build with React, you likely start from wagmi — and it works with OP
Stack chains out of the box. OP Stack chains are standard EVM chains, and
wagmi/chains ships their definitions (optimism, base, zora, and every
other chain from viem/chains). Nothing OP-specific is required for reads,
writes, or wallet connections.
For OP Stack–specific operations — deposits, withdrawals, interop — use the
fact that wagmi is a wrapper over viem:
- Get a viem client from wagmi with the
useClient or
useConnectorClient
hooks, following wagmi’s own
viem guide.
- Extend that client with the
viem/op-stack
actions and call them directly.
For Superchain interop specifically, the experimental
@eth-optimism/wagmi
package provides React hooks (such as useSendL2ToL2Message) over
@eth-optimism/viem. Treat it like its underlying package: experimental.
Next Steps