Aptos 0.0.12-beta

This is a prerelease version of Aptos.
dotnet add package Aptos --version 0.0.12-beta                
NuGet\Install-Package Aptos -Version 0.0.12-beta                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Aptos" Version="0.0.12-beta" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Aptos --version 0.0.12-beta                
#r "nuget: Aptos, 0.0.12-beta"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Aptos as a Cake Addin
#addin nuget:?package=Aptos&version=0.0.12-beta&prerelease

// Install Aptos as a Cake Tool
#tool nuget:?package=Aptos&version=0.0.12-beta&prerelease                

C#/.NET SDK for Aptos (Beta)

License

Overview

The Aptos .NET SDK is a library that provides a convenient way to interact with the Aptos blockchain using C# under the .NET framework. The SDK is designed to offer all the necessary tools to build applications that interact with the Aptos blockchain.

Features

  • Binary Canonical Serialization (BCS) encoding and decoding
  • Ed25519, SingleKey, MultiKey, and Keyless signer support
  • Utilities for transaction building, signing, and submission
  • Abstractions over the Aptos Fullnode and Indexer APIs

Usage

Initialize an instance of the AptosClient class to interact with the Aptos blockchain. You can use a pre-defined network configuration from the Networks class.

// 1. Import the Aptos namespace
using Aptos;

// 2. Initialize the Aptos client
var config = new AptosConfig(Networks.Mainnet);
var client = new AptosClient(config);

// 3. Use the client to interact with the blockchain!
var ledgerInfo = await client.Block.GetLedgerInfo();

Sign and Submit Transactions

To sign and submit a transaction, you can build a payload using the AptosClient and sign it with an Account signer.

using Aptos;

// 1. Initialize the Aptos client
var config = new AptosConfig(Networks.Mainnet);
var client = new AptosClient(config);

// 2. Create a new account
var account = Account.Generate();

// 2. Create a transaction payload
var transaction = await client.Transaction.Build(
    sender: account,
    data: new GenerateEntryFunctionPayloadData(
        function: "0x1::aptos_account::transfer_coins",
        typeArguments: ["0x1::aptos_coin::AptosCoin"],
        functionArguments: [account.Address, "100000"]
    )
);

// 3. Sign and submit the transaction
var pendingTransaction = client.Transaction.SignAndSubmitTransaction(account, transaction);

// 4. (Optional) Wait for the transaction to be committed
var committedTransaction = await client.Transaction.WaitForTransaction(pendingTransaction);

Smart Contract View Functions

Call view functions to query smart contracts.

using Aptos;

// 1. Initialize the Aptos client
var config = new AptosConfig(Networks.Mainnet);
var client = new AptosClient(config);

// 2. Call a view function
var result = await client.Contract.View(
    new GenerateViewFunctionPayloadData(
        function: "0x1::coin::name",
        functionArguments: [],
        typeArguments: ["0x1::aptos_coin::AptosCoin"]
    )
);

// 3. Parse the return values
Console.WriteLine(result[0]);

Installation

The SDK is published onto NuGet where you can install it using the following command:

dotnet add package Aptos

Unity

Find the Aptos Unity SDK repository at aptos-labs/unity-sdk.

Unity Package Manager (UPM)

  1. Open the Unity Package Manager (Window > Package Manager).
  2. Click on the + button and select Add package from git URL....
  3. Enter the URL of the Aptos Unity SDK path in this repository:
https://github.com/aptos-labs/unity-sdk.git?path=/Packages/com.aptoslabs.aptos-unity-sdk

Import Asset Package

  1. Go to the aptos-labs/unity-sdk Releases and download the latest release.
  2. Drag and drop the .unitypackage file into your Unity project.

Godot

To install the Aptos SDK into your Godot project, you will need to add the Aptos SDK into your Godot project's .csproj file.

  1. Find the .csproj file in the root of your Godot project.
  2. Add the following line to the <ItemGroup> section of the .csproj file. If it doesn't exist, create it the <ItemGroup> section.
<Project Sdk="Godot.NET.Sdk/4.3.0">
  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <TargetFramework Condition=" '$(GodotTargetPlatform)' == 'android' ">net7.0</TargetFramework>
    <TargetFramework Condition=" '$(GodotTargetPlatform)' == 'ios' ">net8.0</TargetFramework>
    <EnableDynamicLoading>true</EnableDynamicLoading>
    <RootNamespace>AptosSDKExample</RootNamespace>
  </PropertyGroup>

  
  <ItemGroup>
    <PackageReference Include="Aptos" Version="0.0.1-beta" />
  </ItemGroup>
  

</Project>
  1. You can now use the Aptos SDK in your Godot project.
using Aptos;

public partial class MyClass : Node
{
    public override void _Ready()
    {
        var client = new AptosClient(Networks.Mainnet);
        var ledgerInfo = await client.Block.GetLedgerInfo();
        Console.WriteLine($"Ledger Block Height: {ledgerInfo.BlockHeight}");
    }
}

API Reference

The entire API reference can be found here: API Reference

Examples

Examples can be found in the Aptos.Examples project. Run the examples by using the following command:

dotnet run --project ./Aptos.Examples --framework net8.0

This will prompt the follow console. You can select an example to run by entering the corresponding number or using the arrow keys to navigate the menu.

examples-demonstration

Release Process

To release a new version of the SDK, you can bump the version in the Directory.Build.props file and push the changes to the main branch. The GitHub Actions workflow will automatically publish the new version to NuGet.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.0.12-beta 51 10/22/2024
0.0.11-beta 87 10/19/2024
0.0.10-beta 74 10/19/2024
0.0.9-beta 90 10/9/2024
0.0.8-beta 39 10/9/2024
0.0.7-beta 58 10/2/2024
0.0.6-beta 51 10/1/2024
0.0.5-beta 48 9/30/2024
0.0.4-beta 41 9/28/2024
0.0.3-beta 45 9/27/2024
0.0.2-beta 43 9/27/2024