A client library to interact with UTxO RPC compliant endpoints
npm install @utxorpc/sdkThe @utxorpc/sdk provides a Node.js interface for interacting with UTxO-based blockchains via gRPC, making it easy to fetch blocks, follow chain tips, and more. This library is designed to help developers integrate blockchain data into their applications efficiently.
- gRPC Communication: Utilizes gRPC for efficient, low-latency communication with blockchain nodes.
- SyncClient: Stream real-time updates as new blocks are applied, undone, or when the chain resets.
- QueryClient: Retrieve UTxOs and other on-chain data.
- SubmitClient: Submit and monitor transactions.
- WatchClient: Watch for specific transactions or events related to addresses, assets, and more.
To install the SDK, use the following command in your project:
``bash`
npm i @utxorpc/sdk
#### CardanoSyncClient Example
The following example demonstrates using CardanoSyncClient to connect to a UTxO RPC service, fetch block data, and follow chain tips in real-time.
`javascript
import { CardanoSyncClient } from "@utxorpc/sdk";
async function test() {
let syncClient = new CardanoSyncClient({
uri: "http://localhost:50051", // Replace with your UTxO RPC service URL
});
// Follow chain tips by fetching real-time block updates
let tip = syncClient.followTip([
{
slot: 54131816, // Example slot number
hash: "34c65aba4b299113a488b74e2efe3a3dd272d25b470d25f374b2c693d4386535", // Example block hash
},
]);
for await (const event of tip) {
console.log(event); // handle each event however you want
}
}
test().catch(console.error);
`
The SDK includes multiple clients to perform various operations:
#### 1. SyncClient
- followTip(intersect): Stream blockchain updates in real-time.fetchBlock(point)
- : Fetch a specific block using a slot and hash.fetchHistory(start, maxItems)
- : Fetch historical blocks up to maxItems.
#### 2. QueryClient
- readParams(): Retrieve blockchain parameters.readUtxosByOutputRef(refs)
- : Get UTxOs based on specific transaction references.searchUtxosByAddress(address)
- : Search UTxOs by address. This also has variants like Search Utxos by Assets and more.
#### 3. SubmitClient
- submitTx(tx): Submit a transaction to the blockchain.waitForTx(txHash)
- : Wait for a transaction’s confirmation.watchMempool()
- : Watch the mempool. This also has variants like Watch Mempool for Address and more.
#### 4. WatchClient
- watchTx(intersect)`: Watch specific transactions by chain points. This also has variants like Watch Tx for Address.
Contributions are welcome! To contribute, please fork the repository and submit a pull request. For major changes, open an issue first to discuss your ideas.
Want to discuss UTxO RPC or get involved with the community? Join the TxPipe Discord! There’s a dedicated channel for UTxO RPC where you can connect with other developers, share ideas, and get support.
👉 Join the TxPipe Discord here! 💬