AkashicPay currently supports two Networks/Chains: Ethereum and Tron. Support for other blockchains such as Bitcoin is planned for the near future.
Note that whenever a network parameter is required in the SDK, this specifies the blockchain the transaction uses (e.g. Ethereum or Tron). Which currency (ETH, USDT-ERC20, TRX, USDT-TRC20) is transacted is decided by the token parameter - which is left out (null or undefined or similar) for native transactions. See below for more detail and examples.
Tron
On the Tron network, AkashicPay supports transactions involving native coins (TRX) and the Tether stablecoin token (USDT TRC20). Below are examples of doing payouts in the two currencies using the SDK. All other functions that accept network and token parameters work in the same way.
APPayoutResult result =akashicPay.payout("user123","TTVkK6hGoAFhALG9NTkUDHjcFFXKmWcScU","100",APNetworkSymbol.TRX,APTokenSymbol.NATIVE// or exclude this argument);
var trxPayoutResult =awaitsdk.PayoutAsync("user123","TTVkK6hGoAFhALG9NTkUDHjcFFXKmWcScU","100",TronNetworkSymbol.Value,ApTokenSymbol.Native// Or exclude this argument);
USDT (USDT-TRC20)
const { l2Hash } =awaitakashicPay.payout("user123","TTVkK6hGoAFhALG9NTkUDHjcFFXKmWcScU","100",NetworkSymbol.Tron,TokenSymbol.USDT// Note the token here);
$result = $akashicPay->payout("user123","TTVkK6hGoAFhALG9NTkUDHjcFFXKmWcScU","100",NetworkSymbol::TRON,TokenSymbol::USDT // Note the token here);
APPayoutResult result =akashicPay.payout("user123","TTVkK6hGoAFhALG9NTkUDHjcFFXKmWcScU","100",APNetworkSymbol.TRX,APTokenSymbol.USDT// Note the token here);
var trxPayoutResult =awaitsdk.PayoutAsync("user123","TTVkK6hGoAFhALG9NTkUDHjcFFXKmWcScU","100",TronNetworkSymbol.Value,ApTokenSymbol.Usdt// Note the token here);
Ethereum
Similarly to Tron, AkashicPay supports transactions involving native coins (ETH) and the Tether stablecoin token (USDT ERC20). Below are examples of doing payouts in the two currencies using the SDK. All other functions that accept network and token parameters work in the same way.
APPayoutResult result =akashicPay.payout("user123","0x352ad0b65ccaaddd2c3e3b1a78be555171c239f3","100",APNetworkSymbol.ETH,APTokenSymbol.NATIVE// or exclude this argument);
var trxPayoutResult =awaitsdk.PayoutAsync("user123","0x352ad0b65ccaaddd2c3e3b1a78be555171c239f3","100",EthNetworkSymbol.Value,ApTokenSymbol.Native// Or exclude this argument);
USDT (USDT-ERC20)
const { l2Hash } =awaitakashicPay.payout("user123","0x352ad0b65ccaaddd2c3e3b1a78be555171c239f3","100",NetworkSymbol.Ethereum_Mainnet,TokenSymbol.USDT// Note the token here);
$result = $akashicPay->payout("user123","0x352ad0b65ccaaddd2c3e3b1a78be555171c239f3","100",NetworkSymbol::ETHEREUM_MAINNET,TokenSymbol::USDT // Note the token here);
APPayoutResult result =akashicPay.payout("user123","0x352ad0b65ccaaddd2c3e3b1a78be555171c239f3","100",APNetworkSymbol.ETH,APTokenSymbol.USDT// Note the token here);
var trxPayoutResult =awaitsdk.PayoutAsync("user123","0x352ad0b65ccaaddd2c3e3b1a78be555171c239f3","100",EthNetworkSymbol.Value,ApTokenSymbol.Usdt// Note the token here);
Testnets
For testing purposes, e.g. on a develop or staging environment, AkashicPay supports testnets associated with each mainnet. For Ethereum, the associated testnet is called "Sepolia", while for Tron the testnet is "Shasta".
All functionality is identical to performing operations on the mainnets, but you would replace the "NetworkSymbols" in the code to:
NetworkSymbol.Tron_Shasta // Instead of NetworkSymbol.TronNetworkSymbol.Ethereum_Sepolia // Instead of NetworkSymbol.Ethereum_Mainnet
NetworkSymbol::TRON_SHASTA // Instead of NetworkSymbol::TRONNetworkSymbol::ETHEREUM_SEPOLIA // Instead of NetworkSymbol::ETHEREUM_MAINNET
APNetworkSymbol.TRX_SHASTA// Instead of APNetworkSymbol.TRXAPNetworkSymbol.SEP// Instead of APNetworkSymbol.ETH
TronShastaNetworkSymbol.Value// Instead of TronNetworkSymbol.ValueEthSepNetworkSymbol.Value// Instead of EthNetworkSymbol.Value
Note! USDT is also supported on both testnets (USDT-TRC20 and USDT-ERC20). No change is needed from how they are used on the mainnets. I.e. keep using TokenSymbol.USDT for JS/TS and similarly for other languages.