Skip to main content
Not every service an agent needs lives on Sui. Cross-chain payments let an agent keep one Sui wallet and pay x402 services on other chains — spending the Sui stablecoins it already holds, with no bridging and no second wallet to fund.
Cross-chain settlement is live on testnet, paying Base Sepolia (eip155:84532) services from a Sui wallet. More destination chains are on the roadmap.

The idea

The agent’s funds stay on Sui. When it pays a service on another chain, Tentacle Pay routes the payment through a dWallet — a wallet whose private key is split across Ika’s 2PC-MPC network, so no single party can sign for it. The dWallet produces a signature valid on the destination chain, funded by the USDC the agent pays on Sui.
1

The agent holds one Sui wallet

A single Sui keypair with a stablecoin balance — the same wallet used for native Sui payments.
2

It pays in Sui stablecoins

To call a service on another chain, the agent pays USDC on Sui into the Tentacle Pay contract.
3

The dWallet signs for the destination

Ika’s MPC network signs the destination-chain payment authorization on the agent’s behalf.
4

The payment settles on the destination

The signed authorization is submitted to the destination chain, paying the service.
To the destination service it’s an ordinary x402 payment — it never knows the agent started on Sui.

What it looks like in code

The agent registers the destination chain’s x402 scheme with a cross-chain signer. From there, paying is identical to a native x402 call:
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm";
import { wrapFetchWithPayment } from "@x402/fetch";

import { createCrossChainEvmSigner } from "@tentaclepay/sdk/x402/evm";

const crossChainEvmSigner = await createCrossChainEvmSigner(
  keypair, // your Sui keypair
  verifierUrl,
  suiClient,
  ikaClient
);

const client = new x402Client();
client.register("eip155:84532", new ExactEvmScheme(crossChainEvmSigner));

const fetchWithPayment = wrapFetchWithPayment(fetch, client);
See the Quickstart for the full setup, and Architecture for how dWallets and the verifier fit together.

With the wallet

The tpay wallet has cross-chain built in. When an agent pays a service on a supported destination chain, tpay routes it through the dWallet automatically — the agent still spends from its one Sui wallet.

Next steps

Quickstart

Make a cross-chain payment from a Sui wallet.

Architecture

dWallets, the verifier, and the on-chain protocol.