Non-EVM Chains
Guide for integrating T402 with non-EVM blockchain networks.
Supported Chains
T402 supports 9 non-EVM blockchain networks:
| Chain | Package | Token Standard | Status |
|---|---|---|---|
| TON | @t402/ton | Jetton | Production |
| TRON | @t402/tron | TRC-20 | Production |
| Solana | @t402/svm | SPL Token | Production |
| NEAR | @t402/near | NEP-141 | Production |
| Aptos | @t402/aptos | Fungible Asset | Production |
| Tezos | @t402/tezos | FA2 | Production |
| Polkadot | @t402/polkadot | Asset Hub | Production |
| Stacks | @t402/stacks | SIP-010 | Production |
| Cosmos (Noble) | @t402/cosmos | Bank MsgSend | Production |
TON (The Open Network)
Network Details
| Property | Value |
|---|---|
| Network ID | ton:mainnet, ton:testnet |
| Token | USDT Jetton |
| Signature | Ed25519 |
| Finality | ~5 seconds |
Token Addresses
| Network | Jetton Master |
|---|---|
| Mainnet | EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs |
| Testnet | kQD0GKBM8ZbryVk2aESmzfU6b9b_8era_IkvBSELujFZPsyy |
Integration
import { registerExactTonScheme } from '@t402/ton/exact/server';
import { ExactTonScheme } from '@t402/ton/exact/client';
// Server
registerExactTonScheme(server, {});
// Client
const tonClient = new ExactTonScheme(tonConnectUI);
client.register('ton:mainnet', tonClient);TON Connect
import { TonConnectUI } from '@tonconnect/ui';
const tonConnectUI = new TonConnectUI({
manifestUrl: 'https://yourapp.com/tonconnect-manifest.json',
});
await tonConnectUI.connectWallet();TRON
Network Details
| Property | Value |
|---|---|
| Network ID | tron:mainnet, tron:nile, tron:shasta |
| Token | USDT TRC-20 |
| Signature | ECDSA secp256k1 |
| Finality | ~3 seconds |
Token Addresses
| Network | Contract |
|---|---|
| Mainnet | TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t |
| Nile | TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf |
Integration
import { registerExactTronScheme } from '@t402/tron/exact/server';
import { ExactTronScheme } from '@t402/tron/exact/client';
// Server
registerExactTronScheme(server, {});
// Client (with TronLink)
const tronWeb = window.tronWeb;
const tronClient = new ExactTronScheme(tronWeb);
client.register('tron:mainnet', tronClient);Energy Consideration
⚠️
TRON uses Energy for smart contract execution. Ensure accounts have sufficient Energy or TRX for gas.
Solana
Network Details
| Property | Value |
|---|---|
| Network ID | solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp (mainnet) |
| Token | USDC SPL Token |
| Signature | Ed25519 |
| Finality | ~400ms |
Token Addresses
| Network | Mint Address |
|---|---|
| Mainnet | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |
| Devnet | 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU |
Integration
import { registerExactSvmScheme } from '@t402/svm/exact/server';
import { ExactSvmScheme } from '@t402/svm/exact/client';
import { useWallet } from '@solana/wallet-adapter-react';
// Server
registerExactSvmScheme(server, {});
// Client (with Phantom)
const { signMessage, publicKey } = useWallet();
const svmClient = new ExactSvmScheme({ signMessage, publicKey });
client.register('solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp', svmClient);NEAR
Network Details
| Property | Value |
|---|---|
| Network ID | near:mainnet, near:testnet |
| Token | USDT NEP-141 |
| Signature | Ed25519 |
| Finality | ~2 seconds |
Token Addresses
| Network | Contract ID |
|---|---|
| Mainnet | usdt.tether-token.near |
| Testnet | usdt.fakes.testnet |
Integration
import { registerExactNearScheme } from '@t402/near/exact/server';
import { ExactNearScheme } from '@t402/near/exact/client';
// Server
registerExactNearScheme(server, {});
// Client
const nearClient = new ExactNearScheme(wallet);
client.register('near:mainnet', nearClient);Aptos
Network Details
| Property | Value |
|---|---|
| Network ID | aptos:1 (mainnet), aptos:2 (testnet) |
| Token | USDT Fungible Asset |
| Signature | Ed25519 |
| Finality | ~1 second |
Token Addresses
| Network | Metadata Address |
|---|---|
| Mainnet | 0xf73e887a8754f540ee6e1a93bdc6dde2af69fc7ca5de32013e89dd44244473cb |
Integration
import { registerExactAptosScheme } from '@t402/aptos/exact/server';
import { ExactAptosScheme } from '@t402/aptos/exact/client';
// Server
registerExactAptosScheme(server, {});
// Client
const aptosClient = new ExactAptosScheme(wallet);
client.register('aptos:1', aptosClient);Tezos
Network Details
| Property | Value |
|---|---|
| Network ID | tezos:NetXdQprcVkpaWU (mainnet) |
| Token | USDt FA2 (TZIP-12) |
| Signature | Ed25519/secp256k1/P256 |
| Finality | ~30 seconds |
Token Addresses
| Network | Contract | Token ID |
|---|---|---|
| Mainnet | KT1XnTn74bUtxHfDtBmm2bGZAQfhPbvKWR8o | 0 |
| Ghostnet | KT1... | 0 |
Integration
import { registerExactTezosScheme } from '@t402/tezos/exact/server';
import { ExactTezosScheme } from '@t402/tezos/exact/client';
// Server
registerExactTezosScheme(server, {});
// Client
const tezosClient = new ExactTezosScheme(wallet);
client.register('tezos:NetXdQprcVkpaWU', tezosClient);Polkadot Asset Hub
Network Details
| Property | Value |
|---|---|
| Network ID | polkadot:68d56f15f85d3136970ec16946040bc1 |
| Token | USDT (Asset ID 1984) |
| Signature | Sr25519/Ed25519 |
| Finality | ~12 seconds |
Asset Details
| Network | Asset ID | Decimals |
|---|---|---|
| Polkadot Asset Hub | 1984 | 6 |
| Westend Asset Hub | 1984 | 6 |
Integration
import { registerExactPolkadotScheme } from '@t402/polkadot/exact/server';
import { ExactPolkadotScheme } from '@t402/polkadot/exact/client';
// Server
registerExactPolkadotScheme(server, {});
// Client
const polkadotClient = new ExactPolkadotScheme(wallet);
client.register('polkadot:68d56f15f85d3136970ec16946040bc1', polkadotClient);Stacks (Bitcoin L2)
Network Details
| Property | Value |
|---|---|
| Network ID | stacks:1 (mainnet), stacks:2147483648 (testnet) |
| Token | sUSDC SIP-010 |
| Signature | secp256k1 |
| Finality | Bitcoin block (~10 min) |
Token Addresses
| Network | Contract |
|---|---|
| Mainnet | SP3Y2ZSH8P7D50B0VBTSX11S7XSG24M1VB9YFQA4K.token-susdc |
| Testnet | ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.token-susdc |
Integration
import { registerExactStacksScheme } from '@t402/stacks/exact/server';
import { ExactStacksScheme } from '@t402/stacks/exact/client';
// Server
registerExactStacksScheme(server, {});
// Client
const stacksClient = new ExactStacksScheme(wallet);
client.register('stacks:1', stacksClient);Cosmos (Noble)
Network Details
| Property | Value |
|---|---|
| Network ID | cosmos:noble-1 (mainnet), cosmos:grand-1 (testnet) |
| Token | USDC native |
| Signature | secp256k1 |
| Finality | ~6 seconds |
Integration
import { registerExactCosmosScheme } from '@t402/cosmos/exact/server';
import { ExactCosmosScheme } from '@t402/cosmos/exact/client';
// Server
registerExactCosmosScheme(server, {});
// Client
const cosmosClient = new ExactCosmosScheme(wallet);
client.register('cosmos:noble-1', cosmosClient);Multi-Chain Server
Support all non-EVM chains:
import { t402ResourceServer, createFacilitatorClient } from '@t402/core/server';
import { registerExactTonScheme } from '@t402/ton/exact/server';
import { registerExactTronScheme } from '@t402/tron/exact/server';
import { registerExactSvmScheme } from '@t402/svm/exact/server';
import { registerExactNearScheme } from '@t402/near/exact/server';
import { registerExactAptosScheme } from '@t402/aptos/exact/server';
import { registerExactTezosScheme } from '@t402/tezos/exact/server';
import { registerExactPolkadotScheme } from '@t402/polkadot/exact/server';
import { registerExactStacksScheme } from '@t402/stacks/exact/server';
import { registerExactCosmosScheme } from '@t402/cosmos/exact/server';
const server = new t402ResourceServer(facilitator);
// Register all mechanisms
registerExactTonScheme(server, {});
registerExactTronScheme(server, {});
registerExactSvmScheme(server, {});
registerExactNearScheme(server, {});
registerExactAptosScheme(server, {});
registerExactTezosScheme(server, {});
registerExactPolkadotScheme(server, {});
registerExactStacksScheme(server, {});
registerExactCosmosScheme(server, {});
// Configure routes
const routes = {
'/api/premium/*': {
accepts: [
{ scheme: 'exact', network: 'ton:mainnet', payTo: 'EQ...', price: '$0.01' },
{ scheme: 'exact', network: 'tron:mainnet', payTo: 'T...', price: '$0.01' },
{ scheme: 'exact', network: 'solana:5eykt...', payTo: '...', price: '$0.01' },
{ scheme: 'exact', network: 'near:mainnet', payTo: 'account.near', price: '$0.01' },
{ scheme: 'exact', network: 'aptos:1', payTo: '0x...', price: '$0.01' },
{ scheme: 'exact', network: 'tezos:NetXdQprcVkpaWU', payTo: 'tz1...', price: '$0.01' },
{ scheme: 'exact', network: 'polkadot:68d56f...', payTo: '15...', price: '$0.01' },
{ scheme: 'exact', network: 'stacks:1', payTo: 'SP...', price: '$0.01' },
{ scheme: 'exact', network: 'cosmos:noble-1', payTo: 'noble1...', price: '$0.01' },
],
},
};Comparison
| Feature | TON | TRON | Solana | NEAR | Aptos | Tezos | Polkadot | Stacks | Cosmos |
|---|---|---|---|---|---|---|---|---|---|
| Finality | 5s | 3s | 400ms | 2s | 1s | 30s | 12s | 10min | 6s |
| Avg Fee | $0.01 | $0.10 | $0.0001 | $0.001 | $0.001 | $0.01 | $0.01 | $0.05 | $0.001 |
| Signature | Ed25519 | ECDSA | Ed25519 | Ed25519 | Ed25519 | Multi | Sr25519 | ECDSA | secp256k1 |
Related
- EVM Chains - EVM chain integration
- Testnets - Testing environments
- Multi-Chain App - Multi-chain tutorial