Integration Guide
Threshold Action Control is not currently supported by active/available infrastructure (e.g. testnets, TACo node clients). This page serves solely as a open source reference and blueprint.
Guide
The TACo SDK allows you to implement conditional signing for ERC-4337 (a.k.a Account Abstraction) UserOperations. In just a few minutes, you'll be able to:
Define signing conditions – Specify rules that must be fulfilled before UserOperations can be signed
Request signatures – Get signatures from the decentralized network when conditions are met
Execute signed UserOperations – Use the aggregated signature to execute transactions via Account Abstraction
1. Installation
Install @nucypher/taco, @nucypher/taco-auth, and ethers with your favorite package manager:
npm install @nucypher/taco @nucypher/taco-auth ethers@5.7.22. Configuration
To run the code examples below, you will need a cohortId signing parameter. For development and testing, we provide publicly available testnet cohorts:
Lynx
DEVNET
1
11155111
Development cohort
For production use, please contact us to have a dedicated cohort configured.
3. Define Signing Conditions (Admin Only)
Only the cohort admin can set conditions. The testnet cohort comes pre-configured with a time-based condition that allows signing after a certain timestamp.
Admins can set conditions on the contract easily:
4. Request Signatures
Once conditions are set, you can request signatures for UserOperations that meet those conditions:
5. Execute with Signature
The aggregated signature can now be used to execute the UserOperation through an ERC-4337 bundler:
The signature validation happens automatically when the bundler submits the UserOperation to the EntryPoint contract. The EntryPoint calls the account's validateUserOp function, which in turn verifies the signature using the multisig contract's isValidSig method.
Next Steps
Advanced Conditions: See the Signing Object Conditions Guide for more complex condition examples
Production Access: Contact us for a dedicated production cohort
Examples: Check out example implementations
For additional support, join our Discord community
Last updated