The official JavaScript SDK for interacting with the TimeFi Protocol on the Stacks blockchain.
- Protocol Client: Easy-to-use
TimeFiClientfor read and write interactions. - On-chain Data: Fetch TVL, vault status, and lock durations directly from smart contracts.
- Formatting Utilities: Standardized formatting for STX (microSTX to STX), addresses, dates, and timestamps.
- Shared Helpers: Utility helpers and protocol models from the old
timefi-utilsandtimefi-typespackages are now included directly intimefi-sdk. - Mainnet/Testnet Support: Unified interface for both networks.
npm install timefi-sdkimport { TimeFiClient, formatSTX } from 'timefi-sdk';
const client = new TimeFiClient('mainnet');
const tvl = await client.getTVL();
console.log(`Current TVL: ${formatSTX(tvl)} STX`);import { TimeFiClient } from 'timefi-sdk';
const client = new TimeFiClient('mainnet');
const txOptions = client.getCreateVaultOptions('1.25', 4320);import { formatAddress } from 'timefi-sdk';
const shortAddress = formatAddress('SP3F1234567890ABCDEFG1234567890XYZ123');
console.log(shortAddress);import {
calculateTimeRemaining,
getProtocolConfig,
validateAddress,
} from 'timefi-sdk';
const config = getProtocolConfig();
const remaining = calculateTimeRemaining(Date.now() + 60_000);
const isValid = validateAddress('SP3FKNEZ86RG5RT7SZ5FBRGH85FZNG94ZH1MCGG6N');npm testThe SDK exports:
TimeFiClientformatSTX(microStx)formatAddress(address)formatTimestamp(timestamp)calculateTimeRemaining(endTime)validateAddress(address)validateAddressResult(address)formatAmount(amount, decimals?)parseAmount(amount)generateId()sleep(ms)retry(fn, maxRetries?, delay?)initializeProtocol(options?)getProtocolVersion()getProtocolConfig()normalizeVault(vault)normalizeTransaction(transaction)formatNumber(value)formatPercent(value)formatDate(value)formatRelativeTime(value)CONTRACT_ADDRESSCONTRACT_NAMESLOCK_PERIODS
MIT © AdekunleBamz