ChainVine API Docs
  • Chainvine
    • Product and Features
    • Technical Overview
  • ⚙️Developers
    • 🔨Use Cases
      • Leverage cookies
      • Link Claimer/Referrer
      • Record Link Click
      • Generate a Referrer Link
      • Record a Transfer Event
      • Complete a Requirement
    • 🖼️Embedded Widget
      • Implementation
      • FAQ
    • 🧰SDK
      • Implementation
      • Configuring the Client
      • Classes and Functions
        • Utility Methods
        • ChainvineClient
          • getReferralUrl(walletAddress)
          • recordClick(referrer)
          • linkReferrer([payload,])
          • referralConversion([payload,])
          • syncUser(walletAddress)
          • getCampaignReferralStats([payload,])
        • ChainvineUser
          • Initializing the client
          • joinCampaign([campaignParams,])
          • getRequirement([payload,])
          • getUserStats([payload,])
          • verifyRequirement([payload,])
          • completeRequirement([payload,])
          • claimEligibleEarnings([payload,])
          • transferEvent([payload,])
          • referral([campaignParams,])
            • linkToReferrer(referrer)
            • url()
          • setRewardTiersOverride([payload,])
        • Errors
        • Authentication
          • Getting your API Key
          • Allow-listing a domain
      • FAQ
    • 🪝Webhooks
    • 📔Open API Specification
  • Rewards
    • Claiming For Users
      • On ChainVine
Powered by GitBook
On this page
  • Params
  • Optional Params
  • Response
  • Examples
  1. Developers
  2. SDK
  3. Classes and Functions
  4. ChainvineUser

completeRequirement([payload,])

Mark a program/campaign requirement as completed for the user

This method allows you to mark a user's program requirement as completed.

How this methods issues rewards

On success, if the requirement belongs to a program/campaign objective, ChainVine will asynchronously check whether the user has completed enough requirements to mark an objective as completed.

const campaignId = '02jd020jkd-302jdi2d-02ij0dj';

const requirementId = 'Hiodn2oD2dkmo2';

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

Params

Param
Required
Type
Description

campaign.id

required

string

id

required

string

the requirement id to complete

Optional Params

These parameters can be passed in if you are sending custom data to ChainVine when completing a requirement programatically

Param
Required
Type
Description

amount

optional

number

an amount to associate with the completion

fee

optional

number

an optional fee to pass into the SDK

transaction_hash

optional

string

The hash of the transaction that this completion should be linked to

token_address

optional

string

a token address (token, NFT, smart contract) that should be associated with this completion

external_identifier

optional

string

a user identifier known to your system, if passed in, ChainVine will associate this with the wallet address if none has been associated yet, this value will be returned to you if present

Response

Field
Type
Description

message

String

Ok status message on success

Examples

In this approach, we complete a requirement ad-hoc for a user, by passing in a referrer_id if one has been captured by a referral link beforehand.

If the referrer id is passed into the request, and no referral has ever been made between this user and any referrer, then a Referral will be created.

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
});

In this approach, we complete a requirement ad-hoc for a user, by passing in a referrer_id if one has been captured by a referral link beforehand.

If the referrer id is passed into the request, and no referral has ever been made between this user and any referrer, then a Referral will be created.

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
});
PreviousverifyRequirement([payload,])NextclaimEligibleEarnings([payload,])

Last updated 1 year ago

the requirement belongs to Note: this campaign/program must belong to your account

⚙️
🧰
id of the program/campaign