![]() |
VOOZH | about |
dotnet add package Blockfrost.Extensions --version 1.0.0
NuGet\Install-Package Blockfrost.Extensions -Version 1.0.0
<PackageReference Include="Blockfrost.Extensions" Version="1.0.0" />
<PackageVersion Include="Blockfrost.Extensions" Version="1.0.0" />Directory.Packages.props
<PackageReference Include="Blockfrost.Extensions" />Project file
paket add Blockfrost.Extensions --version 1.0.0
#r "nuget: Blockfrost.Extensions, 1.0.0"
#:package Blockfrost.Extensions@1.0.0
#addin nuget:?package=Blockfrost.Extensions&version=1.0.0Install as a Cake Addin
#tool nuget:?package=Blockfrost.Extensions&version=1.0.0Install as a Cake Tool
👁 .NET
<br/>
<img src="https://blockfrost.io/images/logo.svg" width="250" align="right" height="90">
<br/>
<p align="center">.NET SDK for Blockfrost.io API.</p> <p align="center"> <a href="#getting-started">Getting started</a> • <a href="#installation">Installation</a> • <a href="#usage">Usage</a> </p> <br>
To use this SDK, first go to blockfrost.io and create your project to retrive your API token.
<img src="https://i.imgur.com/smY12ro.png">
<br/>
blocfrost-dotnet supports the following environment variables.
$> $env:BFCLI_NETWORK
testnet
$> $env:BFCLI_API_KEY
yourawesomeapikeyforblockfrostio
Make sure you have configured them if you add
blockfrost-dotnetusingservices.AddBlockfrost();There are other extension methods to configure
blockfrost-dotnetwhere the environment variables are not required. One of them is shown in the sample below.
The SDK is hosted on nuget.org, so you can directly import it using your favorite package manager.
$> dotnet new console -n blockfrost-client
$> cd blockfrost-client
$> dotnet add package Blockfrost.Api
$> dotnet add package Blockfrost.Extensions
Using the SDK is pretty straight-forward as you can see from the following example.
using System.IO;
using Blockfrost.Api.Extensions;
using Blockfrost.Api.Models.Extensions;
using Blockfrost.Api.Services;
using Blockfrost.Api.Services.Extensions;
using Microsoft.Extensions.DependencyInjection;
/*
* Parameters
*/
string apiKey = "YOUR_BLOCKFROST_PROJECT_ID";
string network = "NETWORK_OF_THE_PROJECT_ID";
string sender_address = "SENDER_ADDR";
string receiver_address = "RECEIVER_ADDR";
string signedTx = File.ReadAllText("path/to/your/signed/transaction");
/*
* Init Services using apiKey and network
*/
var cardano = new ServiceCollection()
.AddBlockfrost(network, apiKey)
.BuildServiceProvider()
.GetRequiredService<ICardanoService>();
/*
* Show metrics for your account
*/
var metrics = await cardano.Metrics.GetMetricsAsync();
var opt = new System.Text.Json.JsonSerializerOptions() { WriteIndented = true };
System.Console.WriteLine($"Metrics: {metrics.ToJson(opt)}");
/*
* Show sender UTxO
*/
var utxoSender = await cardano.Addresses.GetUtxosAsync(sender_address);
long totalSender = utxoSender.SumAmounts("lovelace");
System.Console.WriteLine($"Sender Total: {totalSender} lovelace");
/*
* Sum receiver UTxO
*/
var utxoReceiver = await cardano.Addresses.GetUtxosAsync(receiver_address);
long totalReceiver = utxoReceiver.SumAmounts("lovelace");
System.Console.WriteLine($"Receiver Total: {totalReceiver} lovelace");
/*
* Query tip
*/
var tip = await cardano.Blocks.GetLatestAsync();
long? latestSlot = tip.Slot;
System.Console.WriteLine($"Tip now at Epoch {tip.Epoch} Slot {tip.Slot} Block {tip.Height}");
/*
* Send submit tx
*/
System.Console.WriteLine(signedTx);
string txid = await cardano.Transactions.PostTxSubmitAsync(signedTx);
System.Console.WriteLine($"Your Transaction was transmitted to the {network}");
System.Console.WriteLine($"https://explorer.cardano-{network}.iohkdev.io/en/transaction?id={txid}");
/*
* Wait two blocks
*/
tip = await cardano.Blocks.WaitAsync(
count: 2,
interval: System.TimeSpan.FromSeconds(5),
callback: latest => System.Console.WriteLine(latest.Slot),
cancellationToken: System.Threading.CancellationToken.None
);
System.Console.WriteLine($"Tip now at Epoch {tip.Epoch} Slot {tip.Slot} Block {tip.Height}");
$ dotnet run
Metrics: [
{
"time": 1631750400,
"calls": 3
},
...
]
Sender Total: 988258310 lovelace
Receiver Total: 10000000 lovelace
Tip now at Epoch 160 Slot 38978334 Block 2965005
Your Transaction was transmitted to the testnet
https://explorer.cardano-testnet.iohkdev.io/en/transaction?id=2b1ca81b94c5dd737fe939444264046c6fbbe96ff403e49ee99e8022b0e512bb
Tip: 38978334
Tip: 38978334
Tip: 38978334
Tip: 38978334
Tip: 38978334
Tip now at Epoch 160 Slot 38978436 Block 2965007
Before you install the command line tool, make sure the environment variables BFCLI_API_KEY and BFCLI_NETWORK exist.
$> $env:BFCLI_NETWORK
testnet
$> $env:BFCLI_API_KEY
yourawesomeapikeyforblockfrostio
$> pwd
{$SolutionDir}\src\Blockfrost.Cli
$> dotnet tool install bfcli --add-source nupkg --version 0.3.0
Tool 'bfcli' (version '0.3.0') was successfully installed.
$> dotnet bfcli -v
bfcli v0.3.0
A .NET Cross Platform Tool / Console App for interacting with Blockfrost API.
USAGE: bfcli (OPTION | COMMAND)
Available options:
-v, --version Show the bfcli version
-h, --help Show this help text
Available commands:
health
$> dotnet bfcli health | ConvertFrom-Json
is_healthy
----------
True
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 net5.0 is compatible. net5.0-windows net5.0-windows was computed. net6.0 net6.0 was computed. net6.0-android net6.0-android was computed. net6.0-ios net6.0-ios was computed. net6.0-maccatalyst net6.0-maccatalyst was computed. net6.0-macos net6.0-macos was computed. net6.0-tvos net6.0-tvos was computed. net6.0-windows net6.0-windows was computed. net7.0 net7.0 was computed. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 was computed. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 netcoreapp2.0 was computed. netcoreapp2.1 netcoreapp2.1 was computed. netcoreapp2.2 netcoreapp2.2 was computed. netcoreapp3.0 netcoreapp3.0 was computed. netcoreapp3.1 netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 netstandard2.0 is compatible. netstandard2.1 netstandard2.1 is compatible. |
| .NET Framework | net461 net461 was computed. net462 net462 was computed. net463 net463 was computed. net47 net47 was computed. net471 net471 was computed. net472 net472 was computed. net48 net48 was computed. net481 net481 was computed. |
| MonoAndroid | monoandroid monoandroid was computed. |
| MonoMac | monomac monomac was computed. |
| MonoTouch | monotouch monotouch was computed. |
| Tizen | tizen40 tizen40 was computed. tizen60 tizen60 was computed. |
| Xamarin.iOS | xamarinios xamarinios was computed. |
| Xamarin.Mac | xamarinmac xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos xamarinwatchos was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.