JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 10
  • Score
    100M100P100Q69132F
  • License Apache-2.0

t402 Payment Protocol TRON Implementation

Package Exports

  • @t402/tron
  • @t402/tron/exact/client
  • @t402/tron/exact/facilitator
  • @t402/tron/exact/server
  • @t402/tron/upto

Readme

@t402/tron

TRON blockchain implementation of the t402 payment protocol using the Exact payment scheme with TRC-20 token transfers.

Installation

npm install @t402/tron

Overview

This package provides three main components for handling t402 payments on TRON:

  • Client - For applications that need to make payments (sign TRC-20 transfers)
  • Server - For resource servers that accept payments and build payment requirements
  • Facilitator - For payment processors that verify signatures and execute on-chain settlements

Quick Start

Client

import { ExactTronClient } from '@t402/tron/exact/client'

const client = new ExactTronClient(signer)
const payload = await client.createPaymentPayload(requirements)

Server

import { ExactTronServer } from '@t402/tron/exact/server'
import { t402ResourceServer } from '@t402/express'
import { HTTPFacilitatorClient } from '@t402/core/server'

const facilitator = new HTTPFacilitatorClient({ url: 'https://facilitator.t402.io' })
const resourceServer = new t402ResourceServer(facilitator).register(
  'tron:mainnet',
  new ExactTronServer(),
)

Facilitator

import { ExactTronFacilitator } from '@t402/tron/exact/facilitator'

const facilitator = new ExactTronFacilitator(signer)

Package Exports

Main Package (@t402/tron)

All constants, types, utilities, token registry, and scheme classes.

Subpath Exports

  • @t402/tron/exact/client - Client-only imports
  • @t402/tron/exact/server - Server-only imports
  • @t402/tron/exact/facilitator - Facilitator-only imports

Supported Networks

Network CAIP-2 Identifier
TRON Mainnet tron:mainnet
TRON Nile Testnet tron:nile
TRON Shasta Testnet tron:shasta

Supported Assets

Token Network Contract Address
USDT Mainnet TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
USDT Nile TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf

Token Utilities

import {
  getDefaultToken,
  getTRC20Config,
  getNetworkTokens,
  getSupportedNetworks,
  isNetworkSupported,
} from '@t402/tron'

// Check if a network is supported
isNetworkSupported('tron:mainnet') // true

// Get USDT config for mainnet
const config = getTRC20Config('tron:mainnet', 'USDT')

// Get all supported networks
const networks = getSupportedNetworks()

Address & Amount Utilities

import {
  validateTronAddress,
  convertToSmallestUnits,
  convertFromSmallestUnits,
  estimateTransactionFee,
  formatAddress,
} from '@t402/tron'

// Validate TRON address (base58check T-prefix)
validateTronAddress('TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t') // true

// Convert amounts (6 decimals for USDT)
convertToSmallestUnits('1.5', 6) // 1500000n
convertFromSmallestUnits(1500000n, 6) // "1.5"

Security

  • Client signs TRC-20 transfer transactions using ECDSA (secp256k1)
  • Replay protection via Protobuf nonce and expiration
  • Facilitator verifies signatures before broadcasting to TRON network

Development

pnpm build    # Build the package
pnpm test     # Run unit tests
pnpm test:integration  # Run integration tests
  • @t402/core - Core protocol types and client
  • @t402/fetch - HTTP wrapper with automatic payment handling
  • @t402/evm - EVM implementation
  • @t402/svm - Solana implementation
  • @t402/ton - TON implementation
  • @t402/near - NEAR Protocol implementation
  • @t402/aptos - Aptos implementation
  • @t402/tezos - Tezos implementation
  • @t402/polkadot - Polkadot Asset Hub implementation
  • @t402/stacks - Stacks implementation
  • @t402/cosmos - Cosmos (Noble) implementation