Integration Guide
The TACo Access Control SDK allows you to use threshold encryption & decryption in your application.
Threshold Access Control is not currently supported by an stable cohort of node operators running TACo clients, nor the surrounding infrastructure to make mainnet access straightforward (e.g. Porter). The network will be relaunched by WEDF in Q3 2026..
Until then, this page serves solely as a open source reference and blueprint for the community.
In just a few minutes you will able to:
Define decryption conditions – these are predefined rules or criteria that must be fulfilled before the encrypted data can be decrypted.
Encrypt data & assign decryption conditions – when you encrypt data, you not only secure it but also tie the decryption process to the conditions you defined.
Threshold-decrypt data – once the decryption conditions are met and validated by a threshold of TACo nodes, decryption can occur.
1. Installation
Install taco , taco-auth, and ethers with your favorite package manager:
$ npm install @nucypher/taco @nucypher/taco-auth ethers@5.7.2TACo currently requires ethers v5. The API is not compatible with ethers v6 (ethers.BrowserProvider, ethers.JsonRpcProvider without the providers namespace, etc.).
2. Configuration
To run the code examples below, you will need the ritualId encryption parameter. In production, your wallet address (encryptor) will also have to be allow-listed for this specific ritual. Please reach out to us here to receive a ritualId and allow-list access.
Additionally, we have publicly available testnet rituals for use when developing your apps.
3. Define decryption condition and encrypt data
With ritualId and a web3 provider from ethers, we can taco.encrypt our data.
In this example, we will use our lynx testnet, where you can freely use ritualId = 27.
The signerProvider is required to authenticate the Encryptor.
4. Decrypt the data
Now we just have to pass the messageKit to the intended data consumer:
Since ownsNFT condition refers to an NFT owned by the data consumer, decrypt call will prompt the recipient to sign a message and prove the ownership of the caller's wallet.
Next steps
Learn more about using TACo in a sandboxed environment in the Testnet section.
Example applications
The following samples showcase integrations with React-based web apps, and serve as an 'end-to-end' reference for creating conditions-based encryption & decryption:
Last updated