Client Setup
Configure the Altitrace client for your environment.
Creating a Client
basic.ts
import { AltitraceClient } from '@altitrace/sdk'
// Default client (localhost)
const client = new AltitraceClient()
// Custom endpoint
const client = new AltitraceClient({
baseUrl: 'http://localhost:8080/v1'
})Configuration Options
interface AltitraceClientConfig {
// API endpoint URL
baseUrl?: string
// Request timeout in milliseconds
timeout?: number
// Number of retry attempts
maxRetries?: number
// API key for authentication
apiKey?: string
// Enable debug logging
debug?: boolean
// Custom headers
headers?: Record<string, string>
// Retry configuration
retryConfig?: {
retryDelay?: number
shouldRetry?: (error: any) => boolean
}
}Default Values
{
baseUrl: 'http://localhost:8080/v1',
timeout: 30_000,
maxRetries: 3,
debug: false,
retryConfig: {
retryDelay: 1000
}
}Environment Variables
The client supports configuration via environment variables:
# API endpoint
ALTITRACE_API_URL=https://altitrace.reachaltitude.xyz/v1
# API key
ALTITRACE_API_KEY=your-api-key
# Debug mode
ALTITRACE_DEBUG=trueconst client = new AltitraceClient({
baseUrl: process.env.ALTITRACE_API_URL,
apiKey: process.env.ALTITRACE_API_KEY,
debug: process.env.ALTITRACE_DEBUG === 'true'
})Client Methods
Direct Access
// Simulation
const result = await client.simulateCall({
from: '0x...',
to: '0x...',
data: '0x...'
})
// Tracing
const trace = await client.traceCall({
from: '0x...',
to: '0x...',
data: '0x...'
})
// Access List
const accessList = await client.generateAccessList({
from: '0x...',
to: '0x...',
data: '0x...'
})Builder Pattern
// Simulation builder
const result = await client.simulate()
.call({ /* transaction */ })
.withAssetChanges(true)
.execute()
// Trace builder
const trace = await client.trace()
.call({ /* transaction */ })
.withCallTracer()
.execute()
// Access list builder
const accessList = await client.accessList()
.call({ /* transaction */ })
.atBlock('latest')
.execute()Sub-clients
// Direct access to specialized clients
const simulation = client.simulation
const tracing = client.tracing
const accessLists = client.accessListsHealth Check
// Check API status
const health = await client.healthCheck()
console.log('Status:', health.status)
console.log('Version:', health.version)
console.log('Uptime:', health.uptime)