sdk/client/Client.ts
Client overview
Table of contents
- constants
- errors
- model
- ApiWalletClient (type alias)
- ApiWalletConfig (interface)
- BlockfrostConfig (interface)
- KoiosConfig (interface)
- KupmiosConfig (interface)
- MaestroConfig (interface)
- MinimalClient (interface)
- MinimalClientEffect (interface)
- NetworkId (type alias)
- PrivateKeyWalletConfig (interface)
- ProviderConfig (type alias)
- ProviderOnlyClient (type alias)
- ReadOnlyClient (type alias)
- ReadOnlyClientEffect (interface)
- ReadOnlyWalletClient (type alias)
- ReadOnlyWalletConfig (interface)
- RetryConfig (interface)
- RetryPolicy (type alias)
- SeedWalletConfig (interface)
- SigningClient (type alias)
- SigningClientEffect (interface)
- SigningWalletClient (type alias)
- WalletConfig (type alias)
constants
RetryPresets
Preset retry configurations for common scenarios.
Signature
export declare const RetryPresets: {
readonly none: {
readonly maxRetries: 0
readonly retryDelayMs: 0
readonly backoffMultiplier: 1
readonly maxRetryDelayMs: 0
}
readonly fast: {
readonly maxRetries: 3
readonly retryDelayMs: 500
readonly backoffMultiplier: 1.5
readonly maxRetryDelayMs: 5000
}
readonly standard: {
readonly maxRetries: 3
readonly retryDelayMs: 1000
readonly backoffMultiplier: 2
readonly maxRetryDelayMs: 10000
}
readonly aggressive: {
readonly maxRetries: 5
readonly retryDelayMs: 1000
readonly backoffMultiplier: 2
readonly maxRetryDelayMs: 30000
}
}Added in v2.0.0
errors
ProviderError (class)
Error class for provider-related operations.
Signature
export declare class ProviderErrorAdded in v2.0.0
model
ApiWalletClient (type alias)
ApiWalletClient - CIP-30 wallet signing and submission without blockchain queries. Requires attachProvider() to access blockchain data.
Signature
export type ApiWalletClient = EffectToPromiseAPI<ApiWalletEffect> & {
readonly attachProvider: (config: ProviderConfig) => SigningClient
readonly Effect: ApiWalletEffect
}Added in v2.0.0
ApiWalletConfig (interface)
CIP-30 API wallet configuration.
Signature
export interface ApiWalletConfig {
readonly type: "api"
readonly api: WalletApi
}Added in v2.0.0
BlockfrostConfig (interface)
Blockfrost provider configuration.
Signature
export interface BlockfrostConfig {
readonly type: "blockfrost"
readonly baseUrl: string
readonly projectId?: string
readonly retryPolicy?: RetryPolicy
}Added in v2.0.0
KoiosConfig (interface)
Koios provider configuration.
Signature
export interface KoiosConfig {
readonly type: "koios"
readonly baseUrl: string
readonly token?: string
readonly retryPolicy?: RetryPolicy
}Added in v2.0.0
KupmiosConfig (interface)
Kupmios provider configuration (Kupo + Ogmios).
Signature
export interface KupmiosConfig {
readonly type: "kupmios"
readonly kupoUrl: string
readonly ogmiosUrl: string
readonly headers?: {
readonly ogmiosHeader?: Record<string, string>
readonly kupoHeader?: Record<string, string>
}
readonly retryPolicy?: RetryPolicy
}Added in v2.0.0
MaestroConfig (interface)
Maestro provider configuration.
Signature
export interface MaestroConfig {
readonly type: "maestro"
readonly baseUrl: string
readonly apiKey: string
readonly turboSubmit?: boolean
readonly retryPolicy?: RetryPolicy
}Added in v2.0.0
MinimalClient (interface)
MinimalClient - network context with combinator methods to attach provider and/or wallet.
Signature
export interface MinimalClient {
readonly networkId: number | string
readonly attachProvider: (config: ProviderConfig) => ProviderOnlyClient
readonly attachWallet: <T extends WalletConfig>(
config: T
) => T extends SeedWalletConfig
? SigningWalletClient
: T extends PrivateKeyWalletConfig
? SigningWalletClient
: T extends ApiWalletConfig
? ApiWalletClient
: ReadOnlyWalletClient
readonly attach: <TW extends WalletConfig>(
providerConfig: ProviderConfig,
walletConfig: TW
) => TW extends SeedWalletConfig
? SigningClient
: TW extends PrivateKeyWalletConfig
? SigningClient
: TW extends ApiWalletConfig
? SigningClient
: ReadOnlyClient
readonly Effect: MinimalClientEffect
}Added in v2.0.0
MinimalClientEffect (interface)
MinimalClient Effect - holds network context.
Signature
export interface MinimalClientEffect {
readonly networkId: Effect.Effect<number | string, never>
}Added in v2.0.0
NetworkId (type alias)
Network identifier for client configuration.
Signature
export type NetworkId = "mainnet" | "preprod" | "preview" | numberAdded in v2.0.0
PrivateKeyWalletConfig (interface)
Private key wallet configuration.
Signature
export interface PrivateKeyWalletConfig {
readonly type: "private-key"
readonly paymentKey: string
readonly stakeKey?: string
readonly addressType?: "Base" | "Enterprise"
}Added in v2.0.0
ProviderConfig (type alias)
Provider configuration union type.
Signature
export type ProviderConfig = BlockfrostConfig | KupmiosConfig | MaestroConfig | KoiosConfigAdded in v2.0.0
ProviderOnlyClient (type alias)
ProviderOnlyClient - blockchain queries and transaction submission.
Signature
export type ProviderOnlyClient = EffectToPromiseAPI<Provider.ProviderEffect> & {
readonly attachWallet: <T extends WalletConfig>(
config: T
) => T extends SeedWalletConfig
? SigningClient
: T extends PrivateKeyWalletConfig
? SigningClient
: T extends ApiWalletConfig
? SigningClient
: ReadOnlyClient
readonly Effect: Provider.ProviderEffect
}Added in v2.0.0
ReadOnlyClient (type alias)
ReadOnlyClient - blockchain queries and wallet address operations without signing. Use newTx() to build unsigned transactions.
Signature
export type ReadOnlyClient = EffectToPromiseAPI<ReadOnlyClientEffect> & {
readonly newTx: (utxos?: ReadonlyArray<CoreUTxO.UTxO>) => ReadOnlyTransactionBuilder
readonly Effect: ReadOnlyClientEffect
}Added in v2.0.0
ReadOnlyClientEffect (interface)
ReadOnlyClient Effect - provider, read-only wallet, and utility methods.
Signature
export interface ReadOnlyClientEffect extends Provider.ProviderEffect, ReadOnlyWalletEffect {
readonly getWalletUtxos: () => Effect.Effect<ReadonlyArray<CoreUTxO.UTxO>, Provider.ProviderError>
readonly getWalletDelegation: () => Effect.Effect<Provider.Delegation, Provider.ProviderError>
}Added in v2.0.0
ReadOnlyWalletClient (type alias)
ReadOnlyWalletClient - wallet address access without signing or blockchain queries. Requires attachProvider() to access blockchain data.
Signature
export type ReadOnlyWalletClient = EffectToPromiseAPI<ReadOnlyWalletEffect> & {
readonly networkId: number | string
readonly attachProvider: (config: ProviderConfig) => ReadOnlyClient
readonly Effect: ReadOnlyWalletEffect
}Added in v2.0.0
ReadOnlyWalletConfig (interface)
Read-only wallet configuration.
Signature
export interface ReadOnlyWalletConfig {
readonly type: "read-only"
readonly address: string
readonly rewardAddress?: string
}Added in v2.0.0
RetryConfig (interface)
Retry policy configuration with exponential backoff.
Signature
export interface RetryConfig {
readonly maxRetries: number
readonly retryDelayMs: number
readonly backoffMultiplier: number
readonly maxRetryDelayMs: number
}Added in v2.0.0
RetryPolicy (type alias)
Retry policy - preset config, custom schedule, or preset reference.
Signature
export type RetryPolicy = RetryConfig | Schedule.Schedule<any, any> | { preset: keyof typeof RetryPresets }Added in v2.0.0
SeedWalletConfig (interface)
Seed phrase wallet configuration.
Signature
export interface SeedWalletConfig {
readonly type: "seed"
readonly mnemonic: string
readonly accountIndex?: number
readonly paymentIndex?: number
readonly stakeIndex?: number
readonly addressType?: "Base" | "Enterprise"
readonly password?: string
}Added in v2.0.0
SigningClient (type alias)
SigningClient - full functionality: blockchain queries, transaction signing, and submission. Use newTx() to build, sign, and submit transactions.
Signature
export type SigningClient = EffectToPromiseAPI<SigningClientEffect> & {
readonly newTx: () => SigningTransactionBuilder
readonly Effect: SigningClientEffect
}Added in v2.0.0
SigningClientEffect (interface)
SigningClient Effect - provider, signing wallet, and utility methods.
Signature
export interface SigningClientEffect extends Provider.ProviderEffect, SigningWalletEffect {
readonly getWalletUtxos: () => Effect.Effect<ReadonlyArray<CoreUTxO.UTxO>, WalletError | Provider.ProviderError>
readonly getWalletDelegation: () => Effect.Effect<Provider.Delegation, WalletError | Provider.ProviderError>
}Added in v2.0.0
SigningWalletClient (type alias)
SigningWalletClient - transaction signing without blockchain queries. Requires attachProvider() to access blockchain data.
Signature
export type SigningWalletClient = EffectToPromiseAPI<SigningWalletEffect> & {
readonly networkId: number | string
readonly attachProvider: (config: ProviderConfig) => SigningClient
readonly Effect: SigningWalletEffect
}Added in v2.0.0
WalletConfig (type alias)
Wallet configuration union type.
Signature
export type WalletConfig = SeedWalletConfig | PrivateKeyWalletConfig | ReadOnlyWalletConfig | ApiWalletConfigAdded in v2.0.0