# Developers

- [Use Cases](https://docs.chainvine.xyz/developers/use-cases.md)
- [Leverage cookies](https://docs.chainvine.xyz/developers/use-cases/leverage-cookies.md): In additional to the ChainvineClient operations, we offer a few global utility methods to assist in keeping track of referrals through the use of cookies.
- [Link Claimer/Referrer](https://docs.chainvine.xyz/developers/use-cases/link-claimer-referrer.md): For claimers to be referred directly to your website rather than first connecting their wallet on ChainVine, you will need to ensure any valid referral is “linked” upon wallet connection.
- [Record Link Click](https://docs.chainvine.xyz/developers/use-cases/record-link-click.md)
- [Generate a Referrer Link](https://docs.chainvine.xyz/developers/use-cases/generate-a-referrer-link.md): If you would like to bypass ChainVine and supply referrers with a referral URL directly on your webpage, you can generate a referral URL for a given wallet address using the "url" endpoint.
- [Record a Transfer Event](https://docs.chainvine.xyz/developers/use-cases/record-a-transfer-event.md): For when you intend to complete a requirement for a user programmatically.
- [Complete a Requirement](https://docs.chainvine.xyz/developers/use-cases/complete-a-requirement.md): For when you intend to complete a requirement for a user programmatically.
- [Embedded Widget](https://docs.chainvine.xyz/developers/embedded-widget.md): Add ChainVine's widget to display your referral program's information on your Web3 site for your logged in user!
- [Implementation](https://docs.chainvine.xyz/developers/embedded-widget/implementation.md): Note: the Widget requires React 18+
- [FAQ](https://docs.chainvine.xyz/developers/embedded-widget/faq.md)
- [SDK](https://docs.chainvine.xyz/developers/sdk.md)
- [Implementation](https://docs.chainvine.xyz/developers/sdk/implementation.md)
- [Configuring the Client](https://docs.chainvine.xyz/developers/sdk/configuring-the-client.md)
- [Classes and Functions](https://docs.chainvine.xyz/developers/sdk/classes-and-functions.md)
- [Utility Methods](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/utility-methods.md): We expose a few useful utility methods to aid referrer ID storage when operating in a browser context.
- [ChainvineClient](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/chainvineclient.md)
- [getReferralUrl(walletAddress)](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/chainvineclient/getreferralurl-walletaddress.md): Retrieves the referral URL for a given wallet address.
- [recordClick(referrer)](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/chainvineclient/recordclick-referrer.md): Logs a referral link click for stats tracking
- [linkReferrer(\[payload,\])](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/chainvineclient/linkreferrer-payload.md): Links a referrer using the provided referral link payload.
- [referralConversion(\[payload,\])](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/chainvineclient/referralconversion-payload.md): Sends referral conversion event.
- [syncUser(walletAddress)](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/chainvineclient/syncuser-walletaddress.md): Allows you to clone ChainvineClient instance scoped to a single wallet address without having to fetch your ClientConfig.
- [getCampaignReferralStats(\[payload,\])](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/chainvineclient/getcampaignreferralstats-payload.md): We expose some useful campaign information via the SDK, this is accessible via the getCampaignReferralStats method
- [ChainvineUser](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/chainvineuser.md)
- [Initializing the client](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/chainvineuser/initializing-the-client.md)
- [joinCampaign(\[campaignParams,\])](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/chainvineuser/joincampaign-campaignparams.md): Send a request to join a user to a referral program/campaign.
- [getRequirement(\[payload,\])](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/chainvineuser/getrequirement-payload.md): Fetches the completion status of a program requirement for the user
- [getUserStats(\[payload,\])](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/chainvineuser/getuserstats-payload.md): Fetches the completion status of a program requirement for the user
- [verifyRequirement(\[payload,\])](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/chainvineuser/verifyrequirement-payload.md): Attempts to verify a requirement for the user
- [completeRequirement(\[payload,\])](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/chainvineuser/completerequirement-payload.md): Mark a program/campaign requirement as completed for the user
- [claimEligibleEarnings(\[payload,\])](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/chainvineuser/claimeligibleearnings-payload.md): Claim eligible cryptocurrency earnings for a user of your campaign
- [transferEvent(\[payload,\])](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/chainvineuser/transferevent-payload.md)
- [referral(\[campaignParams,\])](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/chainvineuser/referral-campaignparams.md)
- [linkToReferrer(referrer)](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/chainvineuser/referral-campaignparams/linktoreferrer-referrer.md)
- [url()](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/chainvineuser/referral-campaignparams/url.md)
- [setRewardTiersOverride(\[payload,\])](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/chainvineuser/setrewardtiersoverride-payload.md): We allow tier percentage overriding should you wish to specify a custom percentage reward for specific users
- [Errors](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/errors.md)
- [Authentication](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/authentication.md)
- [Getting your API Key](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/authentication/getting-your-api-key.md)
- [Allow-listing a domain](https://docs.chainvine.xyz/developers/sdk/classes-and-functions/authentication/allow-listing-a-domain.md)
- [FAQ](https://docs.chainvine.xyz/developers/sdk/faq.md)
- [Webhooks](https://docs.chainvine.xyz/developers/webhooks.md)
- [Open API Specification](https://docs.chainvine.xyz/developers/open-api-specification.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.chainvine.xyz/developers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
