Universal remote control for AI agents. Orchestrate Web3 actions — payments, identity, multi-sig — with simple YAML files. No custom code required.
Live on: Temporal Cloud
Testnet: Ethereum Sepolia
License: MIT
Built by: Eugene Dayne Mawuli (@eugene001dayne)
CONDUCTOR is an open-source workflow engine that lets AI agents coordinate actions across Web3 systems in a guaranteed, reliable sequence.
You write a YAML file. CONDUCTOR handles the rest — retries, ordering, failures, and state — powered by Temporal Cloud.
The problem it solves: AI agents need to touch multiple systems in sequence. Verify a payment. Check an identity. Get multi-sig approval. Notify a webhook. If any step fails, the whole flow needs to retry correctly without double-executing. Normal code can't guarantee this. CONDUCTOR can.
| Connector | Type | Status |
|---|---|---|
echo |
Debug | ✅ Live |
webhook |
HTTP POST to any URL | ✅ Live |
safe.propose |
Safe multisig transaction proposal | ✅ Live on Sepolia |
x402.verify |
x402 payment header verification | ✅ Live (mock - production TODO noted) |
erc8004.check |
ERC-8004 agent identity check | ✅ Live (mock - production TODO noted) |
name: full-agent-flow
version: "1.0"
steps:
- id: verify-payment
type: x402.verify
params:
payment_header: "x402-USDC-10.00-0xYourPayerAddress"
amount_usd: 10.00
token: "USDC"
- id: check-identity
type: erc8004.check
if: "verify-payment.verified"
params:
agent_address: "0xYourAgentAddress"
min_reputation: 0
- id: notify-webhook
type: webhook
if: "check-identity.verified"
params:
url: "https://your-webhook-url.com"
payload:
event: "conductor.agent.verified"
message: "Payment verified and identity confirmed."
- id: complete
type: echo
if: "notify-webhook.success"
params:
message: "Full agent flow complete."Each step only runs if the previous step succeeded. No code required — just YAML.
- Node.js 20+
- pnpm (
npm install -g pnpm) - A Temporal Cloud account (free tier works)
- An Alchemy RPC URL for Sepolia (free at alchemy.com)
- A MetaMask wallet with Sepolia ETH (free from Google Cloud Faucet)
- A Safe multisig wallet on Sepolia (free)
# 1. Clone the repo
git clone https://github.com/eugene001dayne/conductor.git
cd conductor
# 2. Install dependencies
pnpm install
# 3. Copy environment variables
cp .env.example .envEdit .env with your values:
TEMPORAL_ADDRESS=your-namespace.tmprl.cloud:7233
TEMPORAL_NAMESPACE=your-namespace.tmprl.cloud
TEMPORAL_API_KEY=your-temporal-api-key
TEMPORAL_TASK_QUEUE=conductor-task-queue
SAFE_ADDRESS=0xYourSafeAddress
SEPOLIA_RPC_URL=https://eth-sepolia.g.alchemy.com/v2/your-key
SIGNER_PRIVATE_KEY=your-wallet-private-key# 4. Run CONDUCTOR
pnpm dev- Create a YAML file in the
examples/folder - Define your steps using any available connector type
- Use
if:to make steps conditional on previous results - Update the
yamlPathinsrc/index.tsto point to your file - Run
pnpm dev
Steps check the result of previous steps using dot notation:
if: "step-id.verified" # runs if step-id returned verified: true
if: "step-id.success" # runs if step-id returned success: trueDeploy to Google Cloud Run CONDUCTOR can be deployed to Google Cloud Run for production use. The worker connects to Temporal Cloud and processes workflows durably in the cloud. Prerequisites
Google Cloud account with billing enabled gcloud CLI installed and authenticated Docker installed Your .env values ready
Step 1 — Set up Google Cloud project bash# Create a new project or use existing gcloud projects create conductor-prod --name="CONDUCTOR" gcloud config set project conductor-prod
gcloud services enable run.googleapis.com
gcloud services enable cloudbuild.googleapis.com
gcloud services enable containerregistry.googleapis.com
Step 2 — Configure environment variables in Cloud Run
bashgcloud run deploy conductor
--image gcr.io/YOUR_PROJECT_ID/conductor:latest
--region us-central1
--platform managed
--allow-unauthenticated
--set-env-vars "TEMPORAL_ADDRESS=your-namespace.tmprl.cloud:7233"
--set-env-vars "TEMPORAL_NAMESPACE=your-namespace.tmprl.cloud"
--set-env-vars "TEMPORAL_API_KEY=your-temporal-api-key"
--set-env-vars "TEMPORAL_TASK_QUEUE=conductor-task-queue"
--set-env-vars "SAFE_ADDRESS=0xYourSafeAddress"
--set-env-vars "SEPOLIA_RPC_URL=https://eth-sepolia.g.alchemy.com/v2/your-key"
--set-env-vars "SIGNER_PRIVATE_KEY=your-private-key"
--set-env-vars "GEMINI_API_KEY=your-gemini-api-key"
Step 3 — Build and deploy using Cloud Build
bash# Submit build to Cloud Build
gcloud builds submit --config cloudbuild.yaml .
Step 4 — Verify deployment
bash# Check service status
gcloud run services describe conductor --region us-central1
gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=conductor" --limit 50 Step 5 — Trigger a workflow Once deployed, trigger workflows using the Temporal Cloud UI or SDK. The Cloud Run instance runs the worker — it connects to Temporal Cloud and processes any workflow you start. Environment Variables Reference VariableDescriptionTEMPORAL_ADDRESSYour Temporal Cloud namespace endpointTEMPORAL_NAMESPACEYour Temporal Cloud namespaceTEMPORAL_API_KEYTemporal Cloud API keyTEMPORAL_TASK_QUEUETask queue name (default: conductor-task-queue)SAFE_ADDRESSSafe multisig wallet address on SepoliaSEPOLIA_RPC_URLAlchemy Sepolia RPC URLSIGNER_PRIVATE_KEYWallet private key for Safe transactionsGEMINI_API_KEYGoogle Gemini API key
conductor/
├── src/
│ ├── activities/
│ │ ├── echo.ts # Debug activity
│ │ ├── webhook.ts # HTTP webhook connector
│ │ ├── safe-multisig.ts # Safe wallet connector
│ │ ├── x402-verify.ts # x402 payment connector
│ │ └── erc8004-check.ts # ERC-8004 identity connector
│ ├── workflows/
│ │ └── echo-workflow.ts # Main workflow orchestrator
│ ├── schema/
│ │ └── workflow-config.ts # Zod schema for YAML validation
│ ├── worker/
│ │ └── index.ts # Temporal worker
│ └── index.ts # Entry point
├── examples/
│ ├── echo-workflow.yml
│ ├── safe-propose.yml
│ ├── webhook-conditional.yml
│ └── full-agent-flow.yml # The complete demo
└── .env.example
- Gitcoin Passport integration as identity issuer
- Real x402 SDK integration (production hardening)
- Real ERC-8004 registry calls (on-chain)
- Multiple workflow support (run N workflows concurrently)
- SDK for developers to add custom connectors
- Docker one-command setup
- Mainnet deployment
CONDUCTOR is open source. If you want to add a connector:
- Create a new file in
src/activities/ - Export your activity function with typed params and result
- Register it in
src/worker/index.ts - Add the step type handler in
src/workflows/echo-workflow.ts - Add an example YAML in
examples/ - Open a pull request
- Temporal Cloud — durable workflow execution
- Semaphore V4 — ZK identity (via zk-poh)
- Safe Global — multisig wallets
- x402 — HTTP payment protocol
- ERC-8004 — AI agent identity standard
- Alchemy — Ethereum RPC
- Zod — schema validation
MIT — use it, fork it, build on it.