Multichain conditions

We can condition access to the state on two different networks. To do that, we create two (or more) conditions that target different chain ids and then compose them together using CompoundCondition
import { conditions } from '@nucypher/taco';
const ownsSpecificNFTOnPolygon = new conditions.predefined.erc721.ERC721Ownership({
chain: 137, // The first network we target - polygon mainnet
contractAddress: '0x1e988ba4692e52Bc50b375bcC8585b95c48AaD77',
parameters: [3591],
const ownsSufficientMainnetETH = new conditions.base.rpc.RpcCondition({
chain: 1, // The second network we target - eth mainnet
method: 'eth_getBalance',
parameters: [':userAddress'],
returnValueTest: {
comparator: '>',
value: 10,
// Let's combine our conditions
const multichainCondition = conditions.compound.CompoundCondition.and([
ownsSpecificNFTOnPolygon, ownsSufficientMainnetETH

Learn more