API Reference
Constructor
new Tachyon(options)
Creates a new Tachyon SDK instance.
const tachyon = new Tachyon({
apiKey: 'your-api-key',
});
Parameters:
options.apiKey
(string, required): Your Tachyon API keyoptions.baseURL
(string, optional): Base URL for the Tachyon API
Methods
relay(params)
Submits a transaction for relay execution.
const txId = await tachyon.relay({
chainId: ChainId.BASE,
to: '0x742d35cc6634C0532925a3b8D1C9b53e6aC3',
value: '1000000000000000000',
callData: '0x',
label: 'My Transaction',
gasLimit: '21000'
});
Parameters:
chainId
(number, required): The blockchain network IDto
(string, required): The recipient addressvalue
(string, required): Amount to send in weicallData
(string, required): Transaction datalabel
(string, optional): Human-readable label for the transactiongasLimit
(string, optional): Gas limit for the transaction
Returns: Promise<string>
- Transaction ID
Throws: Error if validation fails or submission fails
getRelayStatus(txId)
Gets the current status of a submitted transaction.
const status = await tachyon.getRelayStatus('tx_id_here');
Parameters:
txId
(string, required): The transaction ID returned fromrelay()
Returns: Promise<RelayStatusBase>
- Transaction status object
Status Object Properties:
id
: Transaction IDstatus
: Current status (EXECUTED
,FAILED
,NOT_PICKED_UP
,PENDING
,NEEDS_TO_BE_RETRIED
)to
: Recipient addresscallData
: Transaction datavalue
: Amount in weichainId
: Network IDexecutionTxHash
: On-chain transaction hash (null if not executed)timestamp
: Submission timestamplatency
: Execution latency in millisecondscostUSD
: Execution cost in USDerror
: Error message (if failed)
waitForExecutionHash(txId, timeoutMs?, pollIntervalMs?)
Polls for transaction execution and returns when complete.
const executedTx = await tachyon.waitForExecutionHash(
'tx_id_here',
30000, // 30 second timeout
1000 // poll every 1 second
);
Parameters:
txId
(string, required): Transaction IDtimeoutMs
(number, optional): Maximum wait time in ms (default: 5000)pollIntervalMs
(number, optional): Polling interval in ms (default: 50)
Returns: Promise<RelayStatusBase>
- Completed transaction status
Throws: Error if timeout reached or transaction fails
getSupportedChains()
Gets all supported blockchain networks.
const chains = await tachyon.getSupportedChains();
Returns: Promise<SupportedChainsResponse>
- Array of supported chains
Chain Object Properties:
id
: Chain IDname
: Chain nameiconUrl
: Chain icon URLisTestnet
: Whether it’s a testnetnativeCurrency
: Native currency infoblockExplorers
: Block explorer URLs
isChainSupported(chainId)
Checks if a specific chain is supported.
const isSupported = await tachyon.isChainSupported(ChainId.BASE);
Parameters:
chainId
(number, required): Chain ID to check
Returns: Promise<boolean>
- Whether the chain is supported
checkAccountInfo(address)
Gets account information for a wallet address.
const accountInfo = await tachyon.checkAccountInfo('0x742d35cc...');
Parameters:
address
(string, required): Wallet address to query
Returns: Promise<AccountInfo>
- Account information
Account Info Properties:
userId
: User IDaddress
: Wallet addressavailableBalance
: Available balancependingBalance
: Pending balancedefaultTachyonAccount
: Default account details
getVersion()
Gets the current SDK version.
const version = tachyon.getVersion();
Returns: string
- SDK version
Types and Enums
ChainId
Enum of supported blockchain network IDs:
enum ChainId {
ETHEREUM = 1,
OPTIMISM = 10,
BSC = 56,
POLYGON = 137,
ARBITRUM_ONE = 42161,
BASE = 8453,
// ... and more
}
TransactionStatus
Enum of possible transaction statuses:
enum TransactionStatus {
NOT_PICKED_UP = 'NOT_PICKED_UP',
PENDING = 'PENDING',
EXECUTED = 'EXECUTED',
FAILED = 'FAILED',
NEEDS_TO_BE_RETRIED = 'NEEDS_TO_BE_RETRIED'
}