> For the complete documentation index, see [llms.txt](https://docs.fuul.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fuul.xyz/core-concepts/trigger-integrations/quests-and-social/x-twitter.md).

# 𝕏 (Twitter)

Reward users for engaging with your project on X — follows, posts, likes, and reposts are all supported with automatic verification.

## Supported integrations

| Integration | What's verified                                     |
| ----------- | --------------------------------------------------- |
| **Follow**  | User follows your specified account on X            |
| **Post**    | User publishes a post meeting your content criteria |
| **Like**    | User likes a specific post on X                     |
| **Repost**  | User reposts a specific post on X                   |

## Follow

Due to X API limitations, follow verification requires an OAuth flow — Fuul does not store or transmit the user's auth token. Users must complete verification through the dedicated page:

```
https://app.fuul.xyz/verify-social/{project-slug}/x
```

Append a `redirectUrl` parameter to send users back after verification completes:

```
https://app.fuul.xyz/verify-social/{project-slug}/x?redirectUrl={redirectUrl}
```

The verification modal adopts the **background** and **primary** colors from your Page Customization settings in the Fuul webapp.

## Post

The user connects their X account and Fuul checks their posts against the criteria you configured on the trigger before crediting the reward.

**What you can require:**

* Post contains a specific hashtag (e.g., `#YourProtocol`)
* Post mentions a specific account (e.g., `@yourprotocol`)
* Post includes a specific keyword or URL

{% hint style="info" %}
Combine X post verification with onchain triggers to create multi-step campaigns — users who both post and deposit can unlock a higher reward tier.
{% endhint %}

## Like & Repost

Verification is automatic — Fuul checks the X API to confirm the user liked or reposted the specified post before crediting the reward.

## How verification is targeted

X verification is **trigger-bound**. The verify endpoints (`follows`, `verify_post`, `verify_retweet`, `verify_like`) take the trigger's `trigger_ref` and nothing else. Fuul resolves both the verification target (which account to follow, which post to like or repost) and the emitted event name server-side from the trigger's stored configuration.

This means a client cannot supply its own `post_url` or `username` to steer what gets verified. If you are building against these endpoints directly rather than using the hosted page:

| Case                                                       | Response |
| ---------------------------------------------------------- | -------- |
| Unknown `trigger_ref`, or one belonging to another project | `404`    |
| Wrong trigger type, or malformed trigger context           | `422`    |

No paid verification call is made against the X API when resolution fails.

{% hint style="warning" %}
This replaced an earlier flow where the target came from client-supplied parameters. If you integrated against that shape, switch to passing the `trigger_ref`.
{% endhint %}

## Configuration

| Setting           | Value                                      |
| ----------------- | ------------------------------------------ |
| **Deduplication** | Automatic — one reward per user per action |
