Register unwatched DRE wallets on the Alchemy webhook (cron)
Expected schedule: every 5 minutes.
Selects up to 500 user_wallets rows with status = ACTIVE and webhook_registered_at IS NULL, registers them on every configured Alchemy Address Activity webhook in a single request each, and stamps the ones every webhook accepted.
Registration at signup is best-effort, so this is what heals wallets whose call failed — without it they are never watched and their deposits produce no activity row. Deliberately capped at one Alchemy request per run so a large pending backlog drains steadily instead of bursting the API. Returns 200 with { pending, attempted, registered, failed }; pending is the outstanding count before this run and is the metric to alert on. Requires X-CRON-API-KEY matching CRON_API_KEY.
Headers
Must match CRON_API_KEY
Response
Reconciliation ran; body reports pending/attempted/registered/failed counts.