---
title: "Add campaign participants"
method: POST
path: "/admin/campaign/participants/add"
tags: ["Admin"]
---

# Add campaign participants

`POST /admin/campaign/participants/add`

## Request

- Base URL: `https://api.testnet.rise.trade`
- URL: `https://api.testnet.rise.trade/admin/campaign/participants/add`
- Auth: none required
- TypeScript: <https://skmtc.dev/rise/apis/risex-rest-api/docs/admin/campaign/participants/add/post.ts> (a function with typed inputs; its response is checked against the schema)

Call setParticipants(wallets, true). The participant sync would enroll whitelisted wallets on its own within a tick; this is for enrolling immediately, or for a wallet that is not in the whitelist. Rejects the whole request if any wallet is malformed, since the contract reverts the whole batch.

## Request body

- ApiAddCampaignParticipantsRequest
  - `wallets` string[]

## Response `200`

A successful response.

- ApiAddCampaignParticipantsResponse
  - `tx_hash` string
  - `already_set` string[]: Wallets already enrolled before this call. They are still sent: setParticipants is idempotent, and the contract reverts the whole batch on a zero address, not on a repeat.

## Other responses

- `default`: An unexpected error response.

## Changes

- **2026-11-03** `98eabcd6a6ad`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rise/apis/risex-rest-api/changes/admin/campaign/participants/add/post.md)

---

[API](https://skmtc.dev/rise/apis/risex-rest-api.md) - [All operations](https://skmtc.dev/rise/apis/risex-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rise/apis/risex-rest-api/revisions/98eabcd6a6ad?raw)
