diff --git a/.github/workflows/tapir.yml b/.github/workflows/tapir.yml
index cfde35683..a98f5b4ce 100644
--- a/.github/workflows/tapir.yml
+++ b/.github/workflows/tapir.yml
@@ -10,10 +10,10 @@ on:
 
 # TODO: Use variables when GH supports it for forks. See https://github.com/orgs/community/discussions/44322
 env:
-  RPC_PROVIDER_URL: "https://polygon-mumbai.infura.io/v3/3747007a284045d483c342fb39889a30"
+  RPC_PROVIDER_URL: "https://polygon-mumbai-bor.publicnode.com"
   ENCRYPTOR_PRIVATE_KEY: "0x900edb9e8214b2353f82aa195e915128f419a92cfb8bbc0f4784f10ef4112b86"
   CONSUMER_PRIVATE_KEY: "0xf307e165339cb5deb2b8ec59c31a5c0a957b8e8453ce7fe8a19d9a4c8acf36d4"
-  RITUAL_ID: "5"
+  RITUAL_ID: "0"
 
 jobs:
   networks:
diff --git a/demos/taco-demo/src/config.ts b/demos/taco-demo/src/config.ts
index 96a58089c..f98b1ab06 100644
--- a/demos/taco-demo/src/config.ts
+++ b/demos/taco-demo/src/config.ts
@@ -1,4 +1,4 @@
 import { domains } from '@nucypher/taco';
 
-export const DEFAULT_RITUAL_ID = parseInt(process.env.DEFAULT_RITUAL_ID || '5');
+export const DEFAULT_RITUAL_ID = parseInt(process.env.DEFAULT_RITUAL_ID || '0');
 export const DEFAULT_DOMAIN = process.env.DEFAULT_DOMAIN || domains.TESTNET;
diff --git a/demos/taco-nft-demo/src/config.ts b/demos/taco-nft-demo/src/config.ts
index 96a58089c..f98b1ab06 100644
--- a/demos/taco-nft-demo/src/config.ts
+++ b/demos/taco-nft-demo/src/config.ts
@@ -1,4 +1,4 @@
 import { domains } from '@nucypher/taco';
 
-export const DEFAULT_RITUAL_ID = parseInt(process.env.DEFAULT_RITUAL_ID || '5');
+export const DEFAULT_RITUAL_ID = parseInt(process.env.DEFAULT_RITUAL_ID || '0');
 export const DEFAULT_DOMAIN = process.env.DEFAULT_DOMAIN || domains.TESTNET;
diff --git a/examples/taco/nextjs/src/app/page.tsx b/examples/taco/nextjs/src/app/page.tsx
index a73fb6b9b..7f2c9cc49 100644
--- a/examples/taco/nextjs/src/app/page.tsx
+++ b/examples/taco/nextjs/src/app/page.tsx
@@ -12,7 +12,7 @@ import useTaco from '../hooks/useTaco';
 // eslint-disable-next-line @typescript-eslint/no-explicit-any
 declare const window: any;
 
-const ritualId = 5; // Replace with your own ritual ID
+const ritualId = 0; // Replace with your own ritual ID
 const domain = domains.TESTNET;
 
 function App() {
diff --git a/examples/taco/nodejs/.env.example b/examples/taco/nodejs/.env.example
index 15e66f58c..377e44367 100644
--- a/examples/taco/nodejs/.env.example
+++ b/examples/taco/nodejs/.env.example
@@ -5,5 +5,5 @@ RPC_PROVIDER_URL=https://polygon-mumbai-bor.publicnode.com
 # We provide here some defaults, but we encourage you to choose your own.
 ENCRYPTOR_PRIVATE_KEY=0x900edb9e8214b2353f82aa195e915128f419a92cfb8bbc0f4784f10ef4112b86
 CONSUMER_PRIVATE_KEY=0xf307e165339cb5deb2b8ec59c31a5c0a957b8e8453ce7fe8a19d9a4c8acf36d4
-RITUAL_ID=5
+RITUAL_ID=0
 DOMAIN=tapir
diff --git a/examples/taco/nodejs/src/index.ts b/examples/taco/nodejs/src/index.ts
index 23d20e70e..250a09919 100644
--- a/examples/taco/nodejs/src/index.ts
+++ b/examples/taco/nodejs/src/index.ts
@@ -33,7 +33,7 @@ if (!consumerPrivateKey) {
 }
 
 const domain = process.env.DOMAIN || domains.TESTNET;
-const ritualId = parseInt(process.env.RITUAL_ID || '5');
+const ritualId = parseInt(process.env.RITUAL_ID || '0');
 const provider = new ethers.providers.JsonRpcProvider(rpcProviderUrl);
 
 console.log('Domain:', domain);
diff --git a/examples/taco/react/src/App.tsx b/examples/taco/react/src/App.tsx
index f5418eeb9..97f2155b1 100644
--- a/examples/taco/react/src/App.tsx
+++ b/examples/taco/react/src/App.tsx
@@ -9,7 +9,7 @@ import useTaco from './hooks/useTaco';
 // eslint-disable-next-line @typescript-eslint/no-explicit-any
 declare const window: any;
 
-const ritualId = 5; // Replace with your own ritual ID
+const ritualId = 0; // Replace with your own ritual ID
 const domain = domains.TESTNET;
 
 function App() {
diff --git a/examples/taco/webpack-5/src/index.ts b/examples/taco/webpack-5/src/index.ts
index 1a05cae55..86901c4d0 100644
--- a/examples/taco/webpack-5/src/index.ts
+++ b/examples/taco/webpack-5/src/index.ts
@@ -17,7 +17,7 @@ declare const window: any;
 const runExample = async () => {
   await initialize();
 
-  const ritualId = 5; // Replace with your own ritual ID
+  const ritualId = 0; // Replace with your own ritual ID
   const domain = domains.TESTNET;
 
   const provider = new ethers.providers.Web3Provider(window.ethereum!, 'any');
diff --git a/packages/shared/package.json b/packages/shared/package.json
index cb3e35b03..df55ccc52 100644
--- a/packages/shared/package.json
+++ b/packages/shared/package.json
@@ -42,7 +42,7 @@
   "dependencies": {
     "@ethersproject/abi": "^5.7.0",
     "@ethersproject/providers": "^5.7.2",
-    "@nucypher/nucypher-contracts": "^0.15.0",
+    "@nucypher/nucypher-contracts": "^0.16.0",
     "@nucypher/nucypher-core": "*",
     "axios": "^1.6.2",
     "deep-equal": "^2.2.3",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 37037cfe2..ab8dbd22b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -486,8 +486,8 @@ importers:
         specifier: ^5.7.2
         version: 5.7.2
       '@nucypher/nucypher-contracts':
-        specifier: ^0.15.0
-        version: 0.15.0
+        specifier: ^0.16.0
+        version: 0.16.0
       '@nucypher/nucypher-core':
         specifier: 0.13.0-alpha.1
         version: 0.13.0-alpha.1
@@ -3606,8 +3606,8 @@ packages:
       '@nodelib/fs.scandir': 2.1.5
       fastq: 1.16.0
 
-  /@nucypher/nucypher-contracts@0.15.0:
-    resolution: {integrity: sha512-AVAAJfCdymvaIPnT2fGCL096fNhw70a9OaHGgr6oTMqOeXmyl/ojHHW6FfFOcTToWVsnA5000dTbLe0lfFhrOg==}
+  /@nucypher/nucypher-contracts@0.16.0:
+    resolution: {integrity: sha512-kS2emMiYWXT63HHzS4MFimyOsw2W0XHw8NYrUFOvNuDWVGe33WAcrSND1iFTSm1wiGaMPT/zQhoaYw7Kg/s7qw==}
     dev: false
 
   /@nucypher/nucypher-core@0.13.0-alpha.1: