For the complete documentation index, see llms.txt. This page is also available as Markdown.

Integration Guide

The TACo Access Control SDK allows you to use threshold encryption & decryption in your application.

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.2

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 polygonProvider below connects to Polygon Amoy — this is where TACo's DKG coordination contracts live. It is not your application's chain provider. Your conditions can still target any supported EVM chain (Ethereum, Sepolia, etc.) regardless of this provider.

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