@tokenbound/sdk works with no custom contract configuration.
What is ERC-6551?
ERC-6551 gives every ERC-721 NFT its own smart-contract account — a “token-bound account” (TBA). The account is owned by whoever currently holds the NFT, so anything the account owns or can do transfers automatically when the NFT is transferred. Concretely, a token-bound account can:- Hold assets — ERC-20s, other NFTs, and native MON.
- Execute arbitrary transactions, authorized by the current NFT holder.
- Act as an identity or inventory for games, agents, memberships, and loyalty programs.
Key benefits
- Ownership follows the NFT: transfer the NFT and its entire account — assets and permissions — moves with it, atomically, with no migration step.
- Deterministic addresses: an NFT’s account address is computed from
(chainId, tokenContract, tokenId, implementation, salt), so it can be derived off-chain before the account is even deployed. - No new standard to learn on the wallet side: a TBA is a smart account, compatible with existing tooling and ERC-4337 account abstraction.
- Works out of the box: Monad uses the canonical Tokenbound contracts at their standard cross-chain addresses, so existing ERC-6551 apps and the Tokenbound SDK point at Monad with a config change only.
Canonical deployment on Monad
The Tokenbound ERC-6551 v3 stack is deployed at its canonical, deterministic addresses on Monad mainnet (chain ID 143) and Monad testnet (chain ID 10143). The addresses are identical on both networks and match the Ethereum/Base deployments. All contracts are source-verified on Monadscan and MonadVision.- ERC-6551 Registry:( mainnettestnet )
- V3 Account Implementation:( mainnettestnet )
- V3 Account Proxy:( mainnettestnet )
- V3 Account Guardian:( mainnettestnet )
- Authenticated Multicall (Forwarder):( mainnettestnet )
0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789 (testnet), which is also live on Monad.
Quickstart with the Tokenbound SDK
Install the SDK and viem:Pass the viem
chain object (monad / monadTestnet) explicitly. Recognizing Monad by chainId alone (e.g. chainId: 143) requires Monad to be registered in the SDK’s bundled chain list — a change tracked upstream in tokenbound/sdk. Requires viem ≥ 2.40.0, which is the first release to export the monad mainnet chain.Notes and limitations
- Cross-chain execution is not enabled on Monad. The core TBA stack is fully deployed, but the optional LayerZero V2 executor that powers Tokenbound’s cross-chain calls was not deployed. Same-chain account creation, ownership resolution, and execution work as normal.
Resources
- ERC-6551 Specification
- Tokenbound Documentation
- Tokenbound SDK
- Tokenbound Contracts
- Monad Developer Discord

