Introduction

Introduction

UTxO RPC (u5c for short) is an interface tailored for interactions with UTxO-based blockchains, prioritizing performance and developer experience. By providing a common contract, a range of SDKs, and thorough documentation, UTxO RPC aims to facilitate:

  • Reusability: Enabling shared components that can be reused across different projects to simplify the integration effort.
  • Interoperability: A common interface to simplify integrations between different parties and avoid the common pitfall of vendor lock-in.
  • Performance: A serialized binary format which is compact and efficient, resulting in smaller message sizes and reduced network overhead compared to its JSON counterpart

Please note that UTxO RPC is just a specification of an interface between agents and the blockchain, it doesn't provide any concrete client / provider implementations. The primary purpose of u5c is to define a set of standardized methods, data structures, and communication patterns.

Use-cases

The interface is divided into different modules that represent specific use-cases. Not every client will be interested in every module and not every provider will be serving every module.

Ledgers

Modules are blockchain-agnostic, they need to be paired with a specific ledger to be used. A ledger represents a set of primitive structures that are specific to a particular blockchain ecosystem.

So far, the spec focuses only on Cardano. Other UTxO-based blockchains will follow.

SDKs

Thanks to all of the available gRPC toolchain, generating SDKs in several programming languages is low effort. These are the official libraries maintained as part of the UTxO RPC effort.

If you need a client in a language not found above, check the gRPC documentation (opens in a new tab) for instruction on how to auto-generate client code from proto specs.