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
| Provider | Infrastructure | Best For |
|---|---|---|
| Blockfrost | Hosted API | Production apps, rapid development |
| Kupmios | Ogmios + Kupo | Self-hosted, full control |
| Maestro | Hosted API | Advanced features, analytics |
| Koios | Community API | Decentralized infrastructure |
See Provider Types for detailed comparison and configuration.
Provider-Only Client vs Read-Only Client
Understanding the difference helps choose the right architecture:
| Feature | Provider-Only Client | Read-Only Client |
|---|---|---|
| Configuration | Provider only | Provider + wallet address |
| Query ANY address | Yes | Yes |
| Query OWN address | No (no wallet configured) | Yes (getWalletUtxos()) |
| Build transactions | No (no wallet address) | Yes (unsigned transactions) |
| Sign transactions | No | No |
| Submit transactions | Yes (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
Navigation
Provider Types
Compare Blockfrost, Kupmios, Maestro, and Koios configurations
Provider-Only Client
Learn to use provider without wallet for generic queries
Querying
Master all provider query methods and patterns
Submission
Submit transactions and monitor confirmations
Use Cases
Real-world patterns and complete examples
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.