Add recipient to an existing Kudos


Suppose that you have already created a Kudos token, either through the MintKudos website or the API. Now as a community admin, you want to be able to programmatically add an address to the recipient allowlist of the Kudos so that they can go and claim the Kudos. This can make sense in scenarios where you as the community admin may not have known all possible recipients ahead of time, but you want to programmatically add them later on.


Just because you add a recipient address to the Kudos allowlist, it does not mean that the recipient now owns the Kudos token. They must go and claim the Kudos token on the webapp (login -> click top right profile button -> click "Claim Kudos" -> find Kudos to claim -> sign message to claim for free).
You may find that this additional step is valuable for scenarios where you want the members to decide whether they want to claim a Kudos or not. In other cases, you may want to omit this extra step - if you're in this bucket, please refer to the "Airdrop the same token to many owners" example page.

APIs needed

Assuming that the Kudos is already created and existent, you would call the [Async] POST /tokens/:tokenId/addContributors endpoint. Note that you can add multiple recipients (called contributors in the docs) at once. We will de-duplicate any overlapping recipients, so don't worry abut de-duplicating it on the caller side.

Case Study - Alchemy

​Road to Web3, a web3 education platform run by Alchemy, has created Proof of Knowledge tokens powered by Kudos to indicate completion of their weekly web3 courses. Here is an example.
Every time a student completes the course, they are asked to fill out an online form with proof of their work. Once verified by the community admins, a Zapier workflow runs calling our [Async] POST /tokens/:tokenId/addContributors endpoint. Once the call is done, the user can then go to the MintKudos webapp and claim their token.
Note that one can also build the claiming experience natively outside of our Kudos UI - you can do so by calling the POST /tokens/:tokenId/claim endpoint.