Skip to main content

Troubleshooting

Common issues and solutions for on-chain event attribution.

Events not firing

User wallet not found The Contract Reader only rewards wallets that belong to known Resonance users. The wallet must exist in one of:

  • OAuth pregeneration (Privy-created wallets from Discord, Telegram, etc.)
  • Account linking (external wallets linked via /link wallet)
  • Email-based wallets (created via the Partner Portal)

If the user hasn't linked their wallet yet, the event is skipped.

Confirmation depth delay Events are only processed after the configured confirmation depth (default: 3 blocks). On Soneium, this adds roughly 6 seconds of delay. Combined with the 1-minute cron interval, expect 1–2 minutes between an on-chain event and the reward.

Wrong wallet field If you configured from but the wallet you want to reward is the to parameter, update the wallet field in the event configuration.

Contract address mismatch Ensure the contract address is for Soneium Mainnet (Chain ID: 1868). Testnet contracts won't work.

Duplicate rewards

The Contract Reader deduplicates using:

  1. Block cursor — only processes blocks after the last processed block
  2. Transaction hash + log index — each event is tracked for 24 hours

If you see duplicates, check if the same event is configured under multiple rules.

Cooldown not working

Cooldown is enforced by the Event Handler, not the Contract Reader. The same cooldown rules apply as for any other event type. Check the cooldown_period on your monitoring rule.

No events detected

  1. Verify the contract address is correct and active on Soneium Mainnet
  2. Check that the event signature matches the actual contract ABI
  3. Confirm the contract emits standard EVM event logs (not all state changes emit logs)
  4. Try leaving the event signature blank to match all events from the contract