The platform fetches and normalizes transaction data from multiple bridge providers to create a unified view of your cross-chain activity. Each bridge adapter implements the BridgeProviderAdapter interface located in src/services/bridges/types.ts:4.
Implementation: src/services/bridges/across.tsAPI Endpoint: https://app.across.to/api/depositsAcross Protocol is a cross-chain bridge optimized for capital efficiency. The adapter queries deposit history and normalizes transaction data including:
Source and destination chain information
Token amounts and USD valuations
Transaction status (pending, completed, failed)
Block timestamps for accurate date tracking
// Fetches paginated deposit dataawait acrossAdapter.fetchTransactions(address, startTimestamp, endTimestamp)// Handles status mappingif (deposit.status === 'filled') { status = 'completed';} else if (deposit.status === 'expired' || deposit.status === 'refunded') { status = 'failed';}
Pagination: Uses offset-based pagination with a default limit of 100 deposits per request (defined in src/lib/constants.ts:21).
Implementation: src/services/bridges/relay.tsAPI Endpoint: https://api.relay.link/requests/v2Relay provides instant cross-chain bridging with a focus on user experience. The adapter processes bridge requests with detailed metadata:
Pagination: Uses cursor-based continuation tokens for efficient data fetching across multiple pages.Status mapping: Maps various request states (success, completed, failed, refunded, cancelled) to the normalized status format.
Implementation: src/services/bridges/lifi.tsAPI Endpoint: https://li.quest/v1/analytics/transfersLiFi is a bridge aggregator that routes transfers through multiple underlying protocols. The adapter processes transfer data with comprehensive token information:
// LiFi provides both sending and receiving informationconst transfer = { sending: { txHash: string, chainId: number, amount: string, token: { address, symbol, decimals, priceUSD }, timestamp: number }, receiving: { chainId: number, // ... destination details }}
Pagination: Uses cursor-based pagination with time-based filtering (fromTimestamp parameter).Timestamp format: Uses Unix timestamps in seconds (already converted from milliseconds).