Skip to main content
Agentic wallets let AI agents hold funds, sign transactions, and interact with smart contracts autonomously. They do this without exposing private keys to the agent or the LLM. This page covers the two leading solutions that work on Sei today: Coinbase AgentKit and Privy server wallets.
Both platforms support Sei as an EVM-compatible chain. You do not need a special integration. Point the wallet provider at Sei’s RPC and chain ID, and everything works with no other setup.

How it works

An agentic wallet sits between your AI agent and the blockchain:
  1. Agent decides: The LLM reasons about what onchain action to take (for example, “send 5 USDC to 0x…”).
  2. SDK prepares: The wallet SDK builds and validates the transaction.
  3. Policy check: The policy engine evaluates the transaction against spending limits, allowlists, and other guardrails.
  4. TEE signs: The private key is isolated in a Trusted Execution Environment (TEE) and signs the transaction there. The key is never exposed to the agent.
  5. Broadcast: The signed transaction is submitted to Sei’s EVM RPC.

Quick comparison

You can also use both together. AgentKit includes a built-in PrivyWalletProvider, so you can combine Privy’s policy engine with AgentKit’s 40+ action providers.

Coinbase AgentKit on Sei

AgentKit is Coinbase’s open-source toolkit that gives AI agents crypto wallets and onchain capabilities. It is framework-agnostic (LangChain, Vercel AI SDK, OpenAI Agents SDK, MCP) and wallet-agnostic (CDP wallets, Privy, Viem, and others).

Architecture

AgentKit is organized around three concepts:
  • Wallet providers: An abstraction over different wallet implementations. For Sei, use ViemWalletProvider (TypeScript) or EthAccountWalletProvider (Python).
  • Action providers: Units of onchain functionality, such as ERC-20 transfers, ERC-721 operations, and Pyth price feeds. Generic EVM providers work on Sei, but providers with hard-coded chain allowlists do not. These include x402ActionProvider, wethActionProvider, and CDP-managed providers. See the support matrix below.
  • Framework extensions: Adapters that turn AgentKit actions into tools for your AI framework.

Prerequisites

  • Node.js v22+ (TypeScript) or Python 3.10+
  • A CDP Secret API Key (for CDP wallet providers, not required for Viem)
  • A funded wallet on Sei

Setup

1

Install packages

2

Create the wallet provider and AgentKit

Viem includes sei (chain ID 1329) and seiTestnet (chain ID 1328), so you can import them directly from viem/chains.
3

Wire into LangChain

Available action providers on Sei

Not every AgentKit action provider works on Sei, because some are chain-specific. This table shows which providers you can use:
Sei-native DeFi actions include swaps on Symphony or DragonSwap, staking through Silo, and lending through Takara. For these actions, use the Cambrian Agent Kit alongside AgentKit, or write custom action providers.

Known quirks on Sei

These quirks were verified with AgentKit 0.10.4 against Sei Testnet (chain 1328). They are in AgentKit’s network and action-provider layer, and they apply to both ViemWalletProvider and PrivyWalletProvider:
  • Balances are labeled “ETH” in action output. walletActionProvider hard-codes the native-currency symbol. Even on Sei, get_wallet_details returns strings like Native Balance: 512993.50 ETH, and native_transfer responses say Transferred 0.05 ETH to 0x.... The quirk affects only the display, not signing or arithmetic. If the LLM quotes balances or transfer confirmations to users, rewrite ETH to SEI when chain_id == 1329 || 1328. Use a post-processing step or a system-prompt instruction.
  • networkId is undefined. Coinbase’s internal CHAIN_ID_TO_NETWORK_ID map includes only Ethereum, Polygon, Base, Arbitrum, and Optimism (mainnet and testnet). Sei’s chain IDs are not in the map, so walletProvider.getNetwork() returns { protocolFamily: 'evm', chainId: '1328', networkId: undefined }. This is harmless for signing and sending, but any action provider that branches on networkId refuses to run on Sei. In practice, AgentKit.from({...}) prints a warning like The following action providers are not supported on the current network and will be unavailable: weth, x402 and silently drops those providers. If you expect an action and it is missing from agentKit.getActions(), check this warning first.

CDP-managed wallets and Sei

AgentKit’s CdpEvmWalletProvider (CDP-managed server wallets with built-in policies) currently supports only base, base-sepolia, ethereum, ethereum-sepolia, polygon, arbitrum, and optimism. Sei is not a supported network. For managed cloud custody with a policy engine on Sei, use one of these options:
  • Privy server wallets (below): TEE-isolated keys with a policy engine that works on any EVM chain, including Sei.
  • AgentKit and Privy combined: Use PrivyWalletProvider inside AgentKit. You keep the 40+ action providers, and Privy handles custody and policy enforcement. See Using AgentKit with Privy (combined) below.
If you only need self-custodial keys, use ViemWalletProvider as shown above. In this setup, you hold the private key and there is no TEE. Enforce limits in your own application logic.

Privy server wallets on Sei

Privy offers wallet-as-a-service infrastructure for AI agents. Server wallets are programmatically managed wallets designed for backend use. They do not require user interaction. Keys are isolated in TEEs with Shamir secret sharing and never leave secure enclaves.

Prerequisites

  • A Privy account with an App ID and App Secret
  • An authorization keypair (generated in the Privy dashboard)

Setup

1

Create a wallet

Response:
2

Send a transaction on Sei

To target Sei Mainnet, use eip155:1329 (CAIP-2 format):
3

Sign a message

Known quirks on Sei (Privy)

These quirks were verified with @privy-io/server-auth 1.32.5 against Sei Testnet (eip155:1328):
  • value must be a hex string, not a BigInt. Privy’s request signer uses RFC 8785 JSON canonicalization (canonicalize). If you pass a BigInt in any field of the transaction object, the signer throws TypeError: Do not know how to serialize a BigInt. Before you send, convert viem’s parseEther(...) output with '0x' + parseEther('0.01').toString(16).
  • authorizationKeyIds on createWallet expects the public-key registration ID, not the dashboard key ID. If you pass the ID shown next to a key in the Privy dashboard, the call can fail with 400 Invalid authorization key IDs. If you only need an app-owned wallet (app credentials and authorizationPrivateKey for request signing), omit authorizationKeyIds. The wallet is still fully operable.

Privy with LangChain

Privy publishes a LangChain integration (langchain-privy) that exposes wallet operations as a single LangChain tool. The tool reads PRIVY_APP_ID and PRIVY_APP_SECRET from the environment. You bind it directly to the LLM:
For Sei, use one of these options instead of the built-in LangChain tool:
  • Call Privy’s REST API or server-auth SDK directly with caip2: eip155:1329, as shown above.
  • Use AgentKit’s PrivyWalletProvider with a LangChain adapter (@coinbase/agentkit-langchain). See Using AgentKit with Privy (combined) below.
As of langchain-privy@0.1.0, the library’s Chain enum does not include Sei. The built-in tool targets only Ethereum, Base, Optimism, Arbitrum, Polygon, Zora, Avalanche, BSC, Celo, Linea, Solana, and Bitcoin.

Privy policy engine

Privy’s policy engine evaluates policies server-side before signing. Each rule pairs an ALLOW or DENY action with an RPC method and a list of conditions on transaction fields. To attach one or more policies to a wallet, use updateWallet.
Always start from an explicit ALLOW rule that describes the happy path. Then add DENY rules on top. Privy’s engine is default-deny. It allows a request only when at least one ALLOW rule matches and no DENY rule matches. A policy built only from DENY rules blocks every transaction, including transactions you expect to pass.
Conditions support the eq, gt, gte, lt, lte, and in operators against ethereum_transaction fields (to, value) or ethereum_calldata fields. The operand order is tx_field <operator> rule_value. For example, operator: 'lte' with value: '10000000000000000000' means “transaction value ≤ 10 SEI”. method must be eth_sendTransaction or eth_signTransaction. Chain restriction is not a policy condition. To keep an agent on Sei, enforce caip2: 'eip155:1329' at the call site.
Privy also has features beyond the policy engine:
  • Key quorums: require multiple authorization keys to approve high-value transactions
  • Webhook notifications: get notifications for all wallet activity, on any chain

Using AgentKit with Privy (combined)

AgentKit includes a built-in PrivyWalletProvider. With it, you can use Privy’s wallet infrastructure and policy engine as the backend, and AgentKit’s 40+ action providers for onchain operations. Because of the authorizationKeyIds quirk noted above, the simplest working pattern has two steps. First, create the wallet once with the Privy SDK (or the dashboard). Then pass the resulting walletId to AgentKit:
This setup combines Privy’s fine-grained policies and key quorums with AgentKit’s action library.
Always create the wallet first and pass walletId. If you call PrivyWalletProvider.configureWithWallet without a walletId, AgentKit tries to create a new wallet for you. It passes authorizationKeyId through to Privy, which causes the same 400 Invalid authorization key IDs failure described in the Privy quirks above.

Feature matrix

Wallet creation & key management

Policy engine & guardrails

Gas & transaction management

Agentic DeFi actions

For Sei-native DeFi actions, use the Cambrian Agent Kit. It includes built-in integrations for Symphony, DragonSwap, Silo, Takara, and Citrex.

x402 & machine-to-machine payments

Developer experience


Other agentic wallet solutions

Coinbase AgentKit and Privy are the most mature options for Sei. Several other platforms also support agentic wallet use cases:

Sei network configuration reference

Use these values when you configure any agentic wallet provider for Sei:
Security reminders:
  • Never expose private keys or authorization secrets to the LLM or agent process.
  • Always use dedicated wallets for agent operations. Never use your main wallet.
  • Start on Sei Testnet (eip155:1328) before you deploy to Sei Mainnet.
  • Before you go live, set spending limits and contract allowlists in the policy engine.
  • Monitor agent wallet activity with block explorers or webhook notifications.