Skip to content

Blaze

Blaze is a NodeJS library for creating Cardano transactions and off-chain code for your Cardano Smart Contracts in JavaScript. You can learn more about Blaze in their documentation site.

Blaze supports multiple backend providers for interacting with the Cardano network. One of those providers is U5C (short for UTxORPC) which is one of the APIs supported by Dolos. You can learn more about U5C in the U5C documentation.

Installation

To install the UTxORPC provider for blaze, use npm:

Terminal window
npm install @utxorpc/blaze-provider

You also need to install the Blaze SDK:

Terminal window
npm install @blaze-cardano/sdk

Sample Usage

Step 1: Import Blaze SDK and the UTxORPC Provider for Blaze

import {
Bip32PrivateKey,
mnemonicToEntropy,
wordlist,
} from "@blaze-cardano/core";
import {
HotWallet,
Core,
Blaze,
} from "@blaze-cardano/sdk";
import { U5C } from "@utxorpc/blaze-provider";

Step 2: Create a New U5C Provider with Dolos

Now this is where we can utilize our local Dolos node and use it for our UTxORPC provider. We can initiliaze our node through this link.

Here’s how to create the U5C Provider:

const provider = new U5C({
url: "http://localhost:50051",
});

Step 3: Create a New Wallet from a Mnemonic

const mnemonic = "your 24-word mnemonic here";
const entropy = mnemonicToEntropy(mnemonic, wordlist);
const masterkey = Bip32PrivateKey.fromBip39Entropy(Buffer.from(entropy), "");
const wallet = await HotWallet.fromMasterkey(masterkey.hex(), provider);

Step 4: Create a Blaze Instance from the Wallet and Provider

const blaze = await Blaze.from(provider, wallet);

Optional: Print the wallet address

console.log("Wallet address", wallet.address.toBech32());

Optional: Print the wallet balance

console.log("Wallet balance", (await wallet.getBalance()).toCore());

Step 5: Create an Example Transaction

const tx = await blaze
.newTransaction()
.payLovelace(
Core.Address.fromBech32(
"addr_test1qrnrqg4s73skqfyyj69mzr7clpe8s7ux9t8z6l55x2f2xuqra34p9pswlrq86nq63hna7p4vkrcrxznqslkta9eqs2nsmlqvnk",
),
5_000_000n,
)
.complete();

Step 6: Sign the Transaction

const signedTx = await blaze.signTransaction(tx);

Step 7: Submit the Transaction to the Blockchain Network

const txId = await blaze.provider.postTransactionToChain(signedTx);

Conclusion

This showcases a use-case for Dolos which is through The UTxORPC (u5c) provider for Blaze. For further customization and advanced usage, refer to the documentation for Blaze. By understanding and utilizing these tools, you can develop robust applications that interact with Cardano efficiently.