Skip to content

Licensing

A valid license key is required to use Tayra in all environments. Request a free trial key at tayra.dev or purchase a production license - see pricing for details.

Setting Your License Key

Set the LicenseKey property in TayraOptions:

csharp
services.AddTayra(opts =>
{
    opts.LicenseKey = Environment.GetEnvironmentVariable("TAYRA_LICENSE_KEY");
});

Without a valid license key, resolving ITayra from the DI container will throw a TayraLicenseException.

Environment Variables

Store your license key in an environment variable or secrets manager rather than hard-coding it. This prevents accidental exposure in source control.

Trial Licenses

Trial licenses are free, fully-functional signed keys with a time limit (typically 15 days). Request one at tayra.dev or by emailing hello@tayra.dev. Trial keys work identically to production keys - there are no artificial limitations, watermarks, or feature gates.

Production Licenses

Production keys give you perpetual fallback use: every Tayra release published on or before your key's MaintenanceUntil date keeps working forever, even after maintenance lapses - regardless of version, including across major versions. Releases published after MaintenanceUntil are not activated by the lapsed key - to install those you renew maintenance and receive an updated key with a later MaintenanceUntil. Maintenance is a single time-based window (12 months from purchase, extended by each renewal). Activation is governed solely by comparing a release's publish date to MaintenanceUntil, with no reference to the current clock - so a deployment your key activates never stops working. See the License for the binding text.

Validation

Tayra validates the license key entirely offline - no network calls, no phone-home, no telemetry. Your application can run in air-gapped environments, private networks, or anywhere without internet access. Validation happens once at startup, not on every encrypt/decrypt call.

Editions

Tayra is available in two editions. Both editions fully support GDPR-compliant data protection - the Compliance edition adds reporting and tooling, not the protection itself.

EditionPackageWhat You Get
EssentialsTayra.CoreField-level encryption, crypto-shredding, key rotation, blind indexes, observability-grade audit logging, all framework integrations, CLI tool - everything needed to protect personal data and comply with GDPR
ComplianceTayra.Core + Tayra.ComplianceEverything in Essentials, plus the regulator-facing artifact suite: PII data maps (Art. 30), data subject access exports (Art. 15/20), breach notification reports (Art. 33/34), formatted HTML compliance reports, ECDSA-signed reports, scheduled report runs with pluggable archive, persistent hash-chained audit trail, and the curated Grafana dashboard

One license = one legal entity

A purchased Tayra license covers a single named legal entity (the "Licensee" identified on the license key or purchase record). It does not extend to parent companies, subsidiaries, sister companies, joint ventures, or other affiliates - even when they share common ownership or control. Each separate legal entity that uses Tayra in production must obtain its own license. See the License for the binding text.

TIP

The Essentials edition already provides the technical foundation for GDPR compliance. The Compliance edition automates the reporting that GDPR requires - the kind of work that would otherwise take weeks of custom development.

The Compliance reporting features are distributed in a separate Tayra.Compliance NuGet package. Install it alongside Tayra.Core:

shell
dotnet add package Tayra.Compliance

Attempting to resolve a Compliance service (e.g., ITayraCompliance) with an Essentials license will throw a TayraLicenseException.

Pricing & Tiers

For license tiers, pricing, and eligibility details, see tayra.dev/#pricing.

To obtain a license key, contact hello@tayra.dev.

Validating Your License

You can check whether a license is valid by resolving the LicenseChecker from the DI container:

csharp
var checker = provider.GetRequiredService<LicenseChecker>();
if (!checker.IsLicensed)
{
    // handle missing / invalid / expired license
}

See Also