Evolution SDK
Providers

Providers

Blockchain data access and transaction submission through provider APIs

Providers

Providers give your application access to blockchain data and transaction submission capabilities. The Evolution SDK supports multiple provider types, each connecting to different Cardano infrastructure.

What is a Provider?

A provider handles communication with the Cardano blockchain. It allows you to query UTxOs, protocol parameters, delegation information, and submit transactions without needing direct node access.

The SDK abstracts provider differences through a unified interface. Choose your provider based on infrastructure preferences, feature requirements, and deployment environment.

Quick Start

Create a provider-only client to query blockchain data:

import { createClient } from "@evolution-sdk/evolution";

const client = createClient({
  network: "mainnet",
  provider: {
    type: "blockfrost",
    baseUrl: "https://cardano-mainnet.blockfrost.io/api/v0",
    projectId: process.env.BLOCKFROST_PROJECT_ID!
  }
});

// Query protocol parameters
const params = await client.getProtocolParameters();
console.log("Min fee:", params.minFeeConstant);

// Query any address
const utxos = await client.getUtxos("addr1...");
console.log("UTxOs found:", utxos.length);

// Submit pre-signed transaction
const signedTxCbor = "84a300..."; // Signed transaction CBOR
const txHash = await client.submitTx(signedTxCbor);

Available Providers

ProviderInfrastructureBest For
BlockfrostHosted APIProduction apps, rapid development
KupmiosOgmios + KupoSelf-hosted, full control
MaestroHosted APIAdvanced features, analytics
KoiosCommunity APIDecentralized infrastructure

See Provider Types for detailed comparison and configuration.

Provider-Only Client vs Read-Only Client

Understanding the difference helps choose the right architecture:

FeatureProvider-Only ClientRead-Only Client
ConfigurationProvider onlyProvider + wallet address
Query ANY addressYesYes
Query OWN addressNo (no wallet configured)Yes (getWalletUtxos())
Build transactionsNo (no wallet address)Yes (unsigned transactions)
Sign transactionsNoNo
Submit transactionsYes (if has signed CBOR)Yes (if has signed CBOR)

Provider-Only Client is for generic blockchain queries and transaction submission when you don't need a specific wallet address.

Read-Only Client is for building unsigned transactions for a specific user address (backend transaction building pattern).

Use Cases

Provider-Only Client:

  • Blockchain explorers querying multiple addresses
  • Transaction submission services
  • Protocol parameter monitoring
  • Generic datum resolution
  • Multi-address portfolio tracking

Read-Only Client:

  • Backend transaction building for dApps
  • Building unsigned transactions for user addresses
  • Wallet-specific UTxO management
  • User-specific delegation queries

Next Steps

Start with Provider Types to choose the right provider for your application, or jump to Provider-Only Client to begin querying the blockchain.