.Net/C# SDK (ECDSA only)


SDK's and Authentication

Authentication Token and SDK's
Given that utilizing the Authentication Token is less complex than the ECDSA Authentication we have NOT provided SDK support for the Authentication Token and we do not intend to add support to SDKs for auth token.

Migrating from ECDSA to Authentication Token
Customers with apps using ECDSA will eventually be required to migrate their existing apps in the near future. Deprecating the ECDSA (legacy) Authentication Scheme is on the roadmap, but does not yet have an ETA.

Sila will send out communication via the news letter and update the docs when this migration needs to take place.


NOTE: This SDK is a Release Candidate.
Within the NuGet Package Manager, you will need to check the "Include prelease" checkbox in order to locate the package.

The .Net SDK requires .Net framework 4.6.1 or later. You can also use .NET Core 2.1 LTS or 3.1 LTS

Initialization sets up the app private key and handle for the SDK to use for signing subsequent requests. The other SDK functionality will not be available until this configuration is completed. The SDK does not store this information outside of the instance that is configured. Private keys are never transmitted over the network or stored outside the scope of this instance.


The installation step does not require ==wallet generation== the Wallet Generation code provided here are the wallet environment variables that you will need when you get to the register step. They will live with the other environment variable but you do not need them in the initial installation set up.

// Via dotnet CLI
> dotnet add package Sila.SDK --version 1.0.1
// Add the SDK reference to your .csproj
> <PackageReference Include="Sila.SDK" Version="0.2.50" />
// Initialize the application
using SilaAPI.silamoney.client.api;
using SilaAPI.silamoney.client.domain;
using System;
class SilamoneyApi
    string privateKey = "0x...";
    string appHandle = "app.silamoney.eth";
    bool debug = false;  // To enable/disable debug you can pass true (debug enabled) or false (debug disabled).
    SilaApi api;
    public SilamoneyApi()
        api = new SilaApi(Environments.SANDBOX, privateKey, appHandle, debug);
    public void GenerateWallet()
        // Generate wallet
        var wallet = api.GenerateWallet();
        Console.WriteLine(wallet.Address); // Wallet public address
        Console.WriteLine(wallet.PrivateKey); // Wallet private key