A Go library that provides a unified interface for interacting with multiple Cardano blockchain API providers, simplifying integration and reducing vendor lock-in.
The library defines a Provider
interface that standardizes access to essential Cardano blockchain operations:
Protocol & Network
GetProtocolParameters()
- Fetch current network protocol parametersSubmitTx()
- Submit signed transactions to the networkAwaitTx()
- Wait for transaction confirmation with configurable polling
UTxO Management
GetUtxosByAddress()
- Query UTxOs by Bech32 addressGetUtxosWithUnit()
- Filter UTxOs by specific asset unitsGetUtxoByUnit()
- Find UTxO containing a specific token/NFTGetUtxosByOutRef()
- Query UTxOs by transaction output references
Smart Contracts & Data
GetDatum()
- Retrieve datum by hash as PlutusDataEvaluateTx()
- Evaluate transaction scripts and calculate execution units
Staking
GetDelegation()
- Get delegation info and rewards for stake addresses
- Blockfrost
- Kupmios
- UTxORPC
- Maestro
- Koios
- kupmios eval not completly working, see test2, test3 for eval
- utxorpc eval not working, unable to find fully functional api providers atm
- plutus script bytes -> plutus script type matching needs to be implemented, its harded coded to v2 atm
- make sure maestro protocol params are all filled as much as possible