Skip to main content

Group owners

Confirm @CanvasVerificationBot is an admin with both restrict members and send messages permissions. Without restrict-members it cannot mute joiners; without send-messages it cannot post the verification notice. Re-add the permissions and try a fresh join.
A task only runs when an active campaign matches your group. If no advertiser is currently funding a campaign for your group, joins pass through without a task (and without a payout). This is expected.
Earnings accrue immediately but settle on-chain in a recurring payout batch, so they appear as pending first. Confirm your payout wallet is set (/wallet 0x…). Settled payouts are visible on Basescan against your wallet.

Advertisers

Deposits are detected by polling Base and can take a short time to credit. If you paid from Telegram’s in-app browser, open the deposit link in an external browser — some in-app browsers block the Base Pay flow. If it still doesn’t credit, contact support with the payment ID.
Funded campaigns wait in pending approval until the group owner accepts (with a 48-hour auto-accept). Until accepted, no verifications run. You can withdraw budget while a campaign is pending.
That happens when the scorer was unavailable. On a Kimi outage the user is admitted after retries, but no payout is released and you are not billed — the protocol never charges for an unscored transcript.

Members

Telegram blocks bots from DMing users who haven’t started them. Open @CanvasVerificationBot, tap Start, then re-request to join the group.
Two failed attempts trigger a 24-hour cooldown on that group. Rate limits also cap attempts per user per group. Wait out the cooldown and try again.

Dashboards

Dashboard access is proven with a wallet signature valid for 5 minutes. If you see an expiry error, reconnect your wallet to sign a fresh Canvas auth: <timestamp> message. See API reference.
The wallet you signed with isn’t linked to an advertiser or group. Advertisers: run /link in the bot. Group owners: register with /register and set a payout wallet with /wallet 0x….