> For the complete documentation index, see [llms.txt](https://docs.chainvine.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chainvine.xyz/developers/use-cases/complete-a-requirement.md).

# Complete a Requirement

### Intended uses

When you are dealing with a requirement that can only be completed by your system, and not ChainVine's, some examples can include, but are not limited to:&#x20;

* a user interacts with a chain that ChainVine does not support
* a user replies to a message on your app
* a user signs up for an off-chain feature on your app

{% tabs %}
{% tab title="Browser" %}
Before implementing this approach, be sure to have [whitelisted your domain](broken://pages/ydVDK8wbPPeSTZhAVgqw).

{% code overflow="wrap" %}

```typescript
import { ChainvineClient } from '@chainvine/sdk';

const userWalletAddress = '0x293kdo0ij0';
const campaignId = 'aSlug123';

const client = new ChainvineClient(); //Make sure to whitelist your domain
const requirementId = 'Hiodn2oD2dkmo2';
const userClient = await client.syncUser(userWalletAddress);

const completion = await userClient.completeRequirement({
    campaign: {
        id: campaignId
    },
    id: requirementId
});
```

{% endcode %}
{% endtab %}

{% tab title="Server" %}
Before implementing this approach, be sure to have gotten a copy of [your API Key](/developers/sdk/classes-and-functions/authentication/getting-your-api-key.md).

{% code overflow="wrap" %}

```typescript
import { ChainvineClient } from '@chainvine/sdk';

const userWalletAddress = '0x293kdo0ij0';
const campaignId = '02jd020jkd-302jdi2d-02ij0dj';

// Generate your ChainvineClient instance
const client = new ChainvineClient({
    apiKey: '0dj03j000d'  // Your API Key
});

const requirementId = 'Hiodn2oD2dkmo2';
const userClient = await client.syncUser(userWalletAddress);

const completion = await userClient.completeRequirement({
    campaign: {
        id: campaignId
    },
    id: requirementId
});

```

{% endcode %}
{% endtab %}
{% endtabs %}
