Choose the licence for what you use.
The local code libraries (SDKs) use Apache 2.0: SDKs in four languages, free to embed in commercial products under the licence terms, without a commercial licence from us. The hosted-service application layer (vault, dispatcher, dashboard, hosted-API server source) is AGPL-3.0 with a commercial-licence path for proprietary self-hosting. Choose by whether you embed a code library, call our API or self-host application code.
The licence split, in plain language.
The SDKs (code libraries for encryption)
Apache Licence 2.0. The TypeScript, Rust, Go, and Python SDKs at github.com/deny-sh-crypto are permissively licensed. You can:
- Embed the SDK in closed-source, proprietary, or commercial products without any obligation to release your code.
- Ship it in your wallet, your AI agent, your security platform, or your CI pipeline. Keep the licence and notices required by Apache 2.0.
- Modify the SDK without contributing changes back. (We would love it if you did, but the licence does not require it.)
- Distribute the SDK as part of a larger product under any compatible licence.
Apache 2.0 includes a patent grant from us to you. We do not charge for the SDK and do not gate features behind a commercial tier.
The application layer (the rest of the codebase)
AGPL-3.0. The vault, MCP server orchestration, hosted-API server source code, browser-tool source, and website source code remain copyleft. AGPL section 13 attaches when you self-host these components and offer them as part of a network service. You can:
- Self-host the application layer for personal use, internal tools, research, or any non-service deployment, freely under AGPL-3.0.
- Modify and contribute back, freely.
- Run your own deniable-encryption SaaS as long as your modifications are released under AGPL-3.0.
If you want to run the application layer as part of a proprietary service without the AGPL copyleft obligation, that is what the commercial application-layer licence covers (tiers below).
Calling the hosted deny.sh API
If your code only calls our hosted API over HTTPS and does not embed, copy, or link the deny.sh application-layer source, AGPL places no obligation on your codebase. You are a user of our hosted service, governed by the Terms of Service, not a distributor of AGPL software. No commercial licence required.
Start with a local example.
View code exampleCode example
// npm install deny-sh
import { encrypt, decrypt } from 'deny-sh';
import { generateDeniableControl } from 'deny-sh';
// Encrypt with deniable decoy
const result = encrypt(seedPhrase, {
password1, password2
});
// Real key
decrypt(result.ciphertext, {
password1, password2,
controlData: result.controlData
});
// -> real seed phrase
// Decoy key (same ciphertext, different result)
const decoy = generateDeniableControl(
result.ciphertext,
password1, password2, decoySeed
);
decrypt(result.ciphertext, {
password1, password2,
controlData: decoy
});
// -> decoy seed phraseNode.js, Python, Go, and Rust SDKs. Apache Licence 2.0. Embed freely.
Application-layer licence: who it's for.
The SDK is permissively licensed and free for everyone. The tiers below are only for organisations that want to self-host the deny.sh application layer (vault, MCP orchestration, hosted-API server source) as part of a proprietary commercial product without the AGPL copyleft obligation.
Agent platforms
Self-host the deny.sh vault as part of your agent product. For agent integrations, keep real credentials in trusted software and give agents decoys or references; control files select the real or decoy value. External evidence can distinguish a fake. Embed the SDK in agent tools under Apache 2.0; consider a commercial licence if the application layer’s AGPL obligations do not fit your deployment.
Exchanges and custody
Protect cold-storage key files and operational hot-wallet backups against insider exfiltration and storage-tier compromise. A decoy control file opens the chosen fake using the same two passwords. Protect the real control file and passwords; a leak of those together reveals the real key.
Secure messaging
Encrypt message archives at rest with deniable encryption. A chosen decoy can be opened from the same encrypted file. This does not hide metadata or guarantee that the alternative is accepted.
Security platforms
Offer deniable file encryption as a platform feature. Password managers, secure notes, document vaults. The construction is open source and built on well-studied primitives (AES-256-CTR, Argon2id); an independent cryptographic audit is on the roadmap, not complete. Review the limits before integrating.
Want a commercial application-layer licence?
Commercial application-layer licences are custom and scoped to your deployment. Rights, support, and service terms are defined in the signed contract. One contact path covers self-hosting and private deployments together.
Looking at per-seat licensing for a wallet or hardware product? See partnerships.
FAQ.
I just want to use the SDK in my product. Do I need anything from you?
No. The SDK is Apache 2.0. Install from npm, crates.io, pkg.go.dev, or PyPI. Use it freely. No notification, no licence fee, no commercial agreement required.
Does calling the deny.sh hosted API require me to open-source my application?
No. AGPL obligations attach to distributors and operators of the application-layer source code. If your application calls our hosted API over HTTPS, you are a user of the service, not a distributor of the software, and AGPL places no obligations on your codebase. The hosted API is governed by the Terms of Service.
When do I need an application-layer commercial licence?
If you want to take the deny.sh application-layer source (vault server, MCP server orchestration, hosted-API server code) and run it as part of a proprietary commercial product without releasing your modifications under AGPL-3.0. The tiers above cover this case.
Why the split? Why not all Apache or all AGPL?
Apache 2.0 permits embedding the SDK in proprietary products under its licence terms. The application layer uses AGPL-3.0, with source-sharing obligations that depend on how it is modified and provided. A commercial licence offers an alternative where those obligations do not fit your deployment.
Does AGPL section 13 attach to the SDK?
No. The SDK ships under Apache 2.0, which has no copyleft clause. AGPL-3.0 (including section 13) applies only to the application layer.
If I want the application-layer position written into my contract for procurement comfort, can you do that?
Yes. We ship that language as standard in the Enterprise MSA Addendum.
Start with the code you need.
Most teams need only the Apache-licensed SDK. npm install deny-sh (or the crates.io, PyPI, Go module equivalent) to evaluate locally. If you are self-hosting application-layer components and want a commercial licence, tell us what you are shipping and we will scope the appropriate terms.