issue #7 · automation gallery
keeper / hub
The agent runs its own infrastructure. Vercel hosts the application; KeeperHub schedules and executes the agent's automations. Each workflow card below is a recipe — open KeeperHub's dashboard, create a new workflow, drop in the listed nodes with the exact parameters shown, and paste the resulting workflow id back into the env var (or Edge Config key). Vercel cron handlers stay as fallbacks; the primary execution path is keeper-driven.
shared parameters · copy these into every workflow
- webhook url
- https://hackagent-nine.vercel.app/api/webhooks/keeperhub
- ens name
- tradewise.agentlab.eth
- ens namehash
- 0x6d81003b2f91af0480ced9f5ab8aec945befadb5342a572c264ec86bcfc00cce
- resolver
- 0xE99638b40E4Fff0129D56f03b55b6bbC4BBE49b5
- reputation registry
- 0x477D6FeFCE87B627a7B2215ee62a4E21fc102BbA
- signer wallet
- PRICEWATCH_PK · owns the ENS subname; use it for any setText / setAgentWallet writes
ens heartbeat
webhook only · push from x402 · configured
writes `last-seen-at` to the agent's ENS text record. webhook trigger only — fires when /api/a2a/jobs pushes via execute_workflow on a paid x402 quote (debounced 5min). no cron schedule means zero gas when the agent is idle. /api/cron/ens-heartbeat on Vercel is the absolute fallback if both KeeperHub and x402 go silent.
env var · KEEPERHUB_WORKFLOW_ID_HEARTBEAT = 0zuje21a39euf7ow86f2s
recipe · 3 nodes
- 1.triggercron schedule
- cron
- 0 * * * *
- input.ts
- {{$now.timestamp}}
- or webhook
- POST https://hackagent-nine.vercel.app/api/cron/ens-heartbeat
either keeperhub's own cron, or call the vercel cron route which forwards to this workflow when the env var is set.
- 2.web3 · writesetText (sepolia)
- chain
- ethereum sepolia (11155111)
- address
- 0xE99638b40E4Fff0129D56f03b55b6bbC4BBE49b5
- function
- setText(bytes32,string,string)
- node
- 0x6d81003b2f91af0480ced9f5ab8aec945befadb5342a572c264ec86bcfc00cce
- key
- last-seen-at
- value
- {{$trigger.input.ts}}
- signer
- PRICEWATCH_PK (deployer wallet)
ENS PublicResolver on Sepolia. node = namehash('tradewise.agentlab.eth'). signer must own the ENS subname (deployer pricewatch wallet does).
- 3.http · webhookcallback to /api/webhooks/keeperhub
- method
- POST
- url
- https://hackagent-nine.vercel.app/api/webhooks/keeperhub
- body
- {"kind":"heartbeat","workflowRunId":"{{$run.id}}","txHash":"{{$step2.txHash}}","summary":"ens last-seen-at updated"}
no runs recorded yet
reputation cache (deprecated)
n/a — Redis-only via reputation-pulse webhook · not configured
Old workflow was deleted from KeeperHub. Reputation freshness now uses /api/keeperhub/reputation-pulse which writes the summary to Redis without an on-chain setText — saves gas on the agent's quiet hours and avoids the ENS-write coupling.
env var · set —= <workflow id> in vercel + .env.local
recipe · 1 nodes
- 1.http · webhookPOST /api/keeperhub/reputation-pulse
- trigger
- push from /api/a2a/jobs
- auth
- Bearer KEEPERHUB_WEBHOOK_SECRET
- body
- { ts, feedbackCount, summary }
no runs recorded yet