StrikeWallet.Client 1.4.0

dotnet add package StrikeWallet.Client --version 1.4.0
                    
NuGet\Install-Package StrikeWallet.Client -Version 1.4.0
                    
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="StrikeWallet.Client" Version="1.4.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="StrikeWallet.Client" Version="1.4.0" />
                    
Directory.Packages.props
<PackageReference Include="StrikeWallet.Client" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add StrikeWallet.Client --version 1.4.0
                    
#r "nuget: StrikeWallet.Client, 1.4.0"
                    
#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.
#:package StrikeWallet.Client@1.4.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=StrikeWallet.Client&version=1.4.0
                    
Install as a Cake Addin
#tool nuget:?package=StrikeWallet.Client&version=1.4.0
                    
Install as a Cake Tool

Logo

Strike .NET client

NuGet version Nuget downloads CI build

This is a C# implementation of the Strike API found here:

https://docs.strike.me/api

Releases and breaking changes

License:

MIT

Features

  • installation via NuGet (StrikeWallet.Client)
  • targeting .NET Core 3.1, .NET 6, .NET 8, and .NET 10 (Windows/Linux/macOS compatible)
  • framework-specific dependencies retain compatibility for existing consumers; legacy targets remain available even though their runtimes are out of support
  • coverage of all 49 operations in the published Strike API reference, including events, webhook subscriptions, payouts, and account limits; see the API coverage audit

Usage

var apiKey = "YOUR_API_KEY";
var environment = StrikeEnvironment.Live;

var client = new StrikeClient(environment, apiKey);
var profile = await client.Accounts.GetProfile("marfusios");

Read recent webhook events and account limits:

var events = await client.Events.GetEvents(top: 20, orderBy: "created desc");
var limits = await client.Accounts.GetLimits();

For paginated collections, check IsCountUnknown before using the total. Existing collection types expose the full 64-bit value through TotalCount; the new events, payouts, and payout-originators collections use long Count.

With dependency injection support:

appsettings.json

{
  "Strike": {
    "Environment": "Live",
    "ApiKey": "YOUR_API_KEY"
  }
}

Startup.cs

services.AddStrike(configuration);

More usage examples:

  • console sample (link)
  • integration tests (link)

Building and testing

Install the .NET 10 SDK and the .NET 8 runtime. global.json selects a stable .NET 10 SDK. The library builds for all four targets in both Debug and Release; offline tests run on .NET 8 and .NET 10.

dotnet restore
dotnet build Strike.Client.sln --configuration Release --no-restore
dotnet test test/Strike.Client.Tests/Strike.Client.Tests.csproj --configuration Release --no-build
dotnet pack src/Strike.Client/Strike.Client.csproj --configuration Release --no-build -o artifacts
dotnet list Strike.Client.sln package --vulnerable --include-transitive

The offline tests use an in-memory HTTP handler to check requests, authentication and idempotency headers, JSON converters, dependency injection, and error responses. They require no API credentials.

Integration tests load appsettings.Tests.json, environment variables, and user secrets. Set Strike__ApiKey and Strike__Environment for the account being tested; user secrets take precedence. Without an API key, integration tests are skipped. CI runs only the read-only checks:

dotnet test test_integration/Strike.Client.IntegrationTests/Strike.Client.IntegrationTests.csproj --configuration Release --no-build --filter "FullyQualifiedName~GetBalances_ShouldWork|FullyQualifiedName~GetRates_ShouldWork|FullyQualifiedName~ApiReadOnlyTests"

Reviewed live tests read balances, rates, limits, and lists of invoices, deposits, payment methods, payouts, payout originators, events, subscriptions, receive requests, and receives. The limits check skips with an explicit reason if the key lacks partner.account.profile.read-own and Strike returns 403. All integration flows that create, execute, initiate, update, or delete resources skip before making requests. A test-only HTTP handler also rejects every method except GET and HEAD before transmission, even if a test is accidentally marked read-only. This restriction applies to every environment and has no configuration override. The sample application uses its own user-secrets ID and is separate from this test setup.

Publishing

Update Version in Directory.Build.props and add docs/releases/<version>.md for every NuGet release. CI validates that the notes exist, builds and tests the library, publishes through NuGet trusted publishing, and then creates the matching v<version> GitHub release from those notes. Before tagging, it waits for the public package and verifies its repository commit. Reruns preserve existing releases.

Pull Requests are welcome!

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 was computed.  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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp3.1 is compatible. 
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
1.4.0 33 9/24/2026
1.3.2 34 9/24/2026
1.3.1 995 6/9/2025
1.3.0 1,012 1/6/2025
1.2.3 232 10/3/2024
1.2.2 209 10/2/2024
1.2.1 204 9/23/2024
1.2.0 219 9/11/2024
1.1.2 222 7/17/2024
1.1.1 186 7/17/2024
1.0.13 226 7/4/2024
1.0.12 202 7/4/2024
1.0.11 234 6/26/2024
1.0.10 211 6/22/2024
1.0.9 211 6/22/2024
1.0.8 206 6/21/2024
1.0.7 196 6/21/2024
1.0.6 223 6/21/2024
1.0.5 218 6/20/2024
1.0.4 204 6/19/2024
Loading failed