> ## Documentation Index
> Fetch the complete documentation index at: https://docs.canvas-protocol.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Conversational captcha

> Why Canvas uses multi-turn conversation and how the LLM stack is split.

A static task — rank these responses, pick A/B/C — can be answered by a bot with a random selection. A multi-turn conversation with adaptive follow-up questions cannot be answered the same way, because the second question depends on what the first answer was.

## How the conversation works

Advertisers submit a brief describing who they want to reach and what signal they want to collect. The Canvas agent uses that brief to generate an opening message. If the user's response is short, vague, or pattern-like, the agent sends a follow-up. After 2–4 turns, the transcript goes to Kimi for scoring.

The brief drives the conversation — there is no fixed task. Each user gets a different opener generated from the same brief, which makes coordinated answer-sharing across accounts impractical.

## LLM stack

The conversational layer and the scoring layer are separate systems running different models.

| Role               | Model type                              | Purpose                                                    |
| ------------------ | --------------------------------------- | ---------------------------------------------------------- |
| Conversation agent | Lightweight LLM (e.g. Gemini Flash 2.0) | Generates dialogue turns, probes thin responses            |
| Quality scorer     | Kimi (Moonshot AI)                      | Reads full transcript, returns quality score, gates payout |

The conversational model runs at sub-cent cost per conversation. At millions of verifications, that separation matters. Kimi runs once per verification, after the conversation closes.

## Sample conversations

### RLHF — DeFi response ranking

**Group:** Crypto Traders HQ · 4,200 members · DeFi / trading\
**Advertiser brief:** Train a DeFi assistant model. Collect preference labels from active traders. Ask users to compare two AI responses to a swap question and explain which is more helpful.

***

**Canvas:** Before you join — we're collecting feedback for a DeFi AI model. Which of these responses to "how do I swap ETH to USDC safely" is more helpful, and why?

**A:** "Use a DEX like Uniswap. Connect your wallet, enter the swap amount, and confirm."\
**B:** "Set slippage to 0.5% or lower. Check the pool's TVL first — low liquidity means more price impact. Approve the token, then confirm the swap."

**User:** B, obviously. A doesn't tell you anything useful

**Canvas:** Agreed — why does the slippage part matter more than people think?

**User:** Because on a big swap on a thin pool you can get wrecked. I've seen people lose 5–10% just from not checking liquidity before

**Canvas:** That's exactly the kind of context we're looking for. You're in.

***

The second turn fired because the first response was usable but shallow. The expanded answer — specific, experience-based — is the training signal.

***

### RLHF — Solidity code review

**Group:** Web3 Developers · 2,100 members · Solidity / smart contracts\
**Advertiser brief:** Evaluate AI-generated Solidity snippets for correctness and security. Ask users to identify issues in a short function.

***

**Canvas:** Quick question before you join — we're training a Solidity code assistant. Can you spot any issue with this function?

```solidity theme={null}
function withdraw(uint amount) external {
    require(balances[msg.sender] >= amount);
    (bool success,) = msg.sender.call{value: amount}("");
    require(success);
    balances[msg.sender] -= amount;
}
```

**User:** Reentrancy. The balance update happens after the external call

**Canvas:** Correct. How would you fix it?

**User:** Move the balance update before the call. Or use a reentrancy guard. Both work but updating state first is the cleaner pattern

**Canvas:** Good answer. You're in.

***

### Agent acquisition — lending protocol

**Group:** Base DeFi Traders · 2,800 members · lending / yield\
**Advertiser brief:** Reach Base-native users who actively manage yield positions. Ask where they put idle capital and what matters when choosing a protocol. Offer a link to the automated lending agent post-verification.

***

**Canvas:** Quick question — if you had idle USDC right now, where would you put it and why?

**User:** Probably Moonwell or Aave on Base, decent rates and I trust the contracts

**Canvas:** Do you actively manage your positions or set and forget?

**User:** Bit of both. I check weekly, move stuff around if rates shift a lot

**Canvas:** You're in. Aave has an agent that rebalances lending positions automatically if you want to check it out — link's in the welcome message.

***

### Agent acquisition — perpetuals trading

**Group:** Crypto Traders HQ · 4,200 members · DeFi / trading\
**Advertiser brief:** Reach active perps traders. Ask how they manage risk on leveraged positions. No correct answer required — intent data only.

***

**Canvas:** Quick question for a trading protocol we're partnering with. How do you manage risk when you're in a leveraged position?

**User:** Stop losses and I never go above 5x

**Canvas:** Do you set stops based on price levels or percentage from entry?

**User:** Usually percentage, around 3–5% depending on the trade. Sometimes key levels if there's an obvious support

**Canvas:** That's useful context. You're in.

***

### Brand research — NFT marketplace

**Group:** NFT Collectors · 3,100 members · art / NFTs\
**Advertiser brief:** Building an NFT discovery product. Ask active collectors how they find drops they actually buy — not where they browse, but what triggers a purchase decision.

***

**Canvas:** Before you join — we're doing research for an NFT discovery tool. What usually tips you over into actually buying a drop, not just looking?

**User:** Honestly usually it's someone I trust posting about it. Or if the artist is someone I've followed for a while

**Canvas:** More the person behind it than the art itself?

**User:** Both, but if I don't know the artist the trust has to come from somewhere else. Like if three people I respect are all minting it that's usually enough

**Canvas:** That's useful. You're in.

***

### Consumer onboarding — wallet app

**Group:** Crypto Beginners · 1,800 members · onboarding / education\
**Advertiser brief:** Understand friction points new crypto users hit in their first month. Ask what was most confusing when they were getting started. Interested in emotional experience, not technical depth.

***

**Canvas:** What was the most confusing part of getting into crypto when you first started?

**User:** Honestly gas fees. I didn't understand why the fee was sometimes more than what I was sending

**Canvas:** Did you figure it out eventually or did you just avoid small transactions?

**User:** Avoided them for a while. Then someone explained it was like a toll road and it clicked

**Canvas:** That's a really common one. You're in.
