API

Crowdfunding

Вспомогательные методы уровня кампании для интеграторов краудфандинга. DAO-bearer-токен должен быть выпущен для той DAO, которой принадлежит кампания, указанная в пути.

Возвращает готовый к подписи URI ton://transfer/..., который вносит указанную сумму (amount) в заданную кампанию краудфандинга.

Авторизация: dao_address из DAO-bearer-токена должен совпадать с DAO, которой принадлежит кампания. При несовпадении возвращается 403.

Вайтлист: для жетонных кампаний investor_address проверяется по вайтлисту кампании — инвестору вне вайтлиста вернётся 403 not_whitelisted. Для нативных кампаний проверка происходит он-чейн, и взнос вне вайтлиста возвращается отправителю сетевым bounce.

GET
/api/v1/crowdfunding/campaigns/{address}/contribution-link

Authorization

DaoBearerAuth
AuthorizationBearer <token>

DAO service token in Bearer format. The token must be valid, not revoked, and authorized for the same dao_address as in the request path.

In: header

Path Parameters

address*string

Campaign address (crowdfunding master address)

Query Parameters

amount*string

Contribution amount in smallest units (nanoton for native, jetton smallest-units for jetton campaigns)

Match^[0-9]+$
investor_address?string

Investor address (required for jetton campaigns, used to resolve the investor's jetton wallet via get_wallet_address). For jetton campaigns it is also checked against the campaign whitelist when one is configured — non-whitelisted investors get 403 not_whitelisted.

query_id?integer

TON message query_id (uint64). Defaults to 0.

Formatint64
Range0 <= value
response_address?string

Jetton transfer response_destination (defaults to investor_address if absent)

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/v1/crowdfunding/campaigns/EQAoZM5vjrPB1RgYQBpymvHrLmjucfhZcTuMhixWU36gYIkk/contribution-link?amount=1000000000"
{  "isNative": true,  "campaignAddress": "EQAoZM5vjrPB1RgYQBpymvHrLmjucfhZcTuMhixWU36gYIkk",  "tonTransfer": {    "uri": "ton://transfer/EQAoZM5v...?amount=1000000000&bin=te6..."  },  "details": {    "to": "EQAoZM5vjrPB1RgYQBpymvHrLmjucfhZcTuMhixWU36gYIkk",    "valueNanoton": "1000000000",    "bodyBocBase64Url": "https://example.com/logo.png"  },  "miniAppLink": "example",  "warnings": [    "example"  ]}
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}

Возвращает готовый к подписи URI ton://transfer/... для **первичного** клейма LP. Это сообщение request_claim_lp_tokens, которое инвестор отправляет на свой контракт Helper (для конкретной кампании) после того, как кампания стала successful.

Авторизация: dao_address из DAO-bearer-токена должен совпадать с DAO, которой принадлежит кампания. При несовпадении возвращается 403.

GET
/api/v1/crowdfunding/campaigns/{address}/claim-link

Authorization

DaoBearerAuth
AuthorizationBearer <token>

DAO service token in Bearer format. The token must be valid, not revoked, and authorized for the same dao_address as in the request path.

In: header

Path Parameters

address*string

Campaign address (crowdfunding master address)

Query Parameters

owner_address*string

Investor wallet address claiming LP tokens

query_id?integer

TON message query_id (uint64). Defaults to 0.

Formatint64
Range0 <= value

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/v1/crowdfunding/campaigns/EQAoZM5vjrPB1RgYQBpymvHrLmjucfhZcTuMhixWU36gYIkk/claim-link?owner_address=EQAoZM5vjrPB1RgYQBpymvHrLmjucfhZcTuMhixWU36gYIkk"
{  "kind": "initial",  "campaignAddress": "EQAoZM5vjrPB1RgYQBpymvHrLmjucfhZcTuMhixWU36gYIkk",  "tonTransfer": {    "uri": "ton://transfer/EQAoZM5v...?amount=1000000000&bin=te6..."  },  "details": {    "to": "EQAoZM5vjrPB1RgYQBpymvHrLmjucfhZcTuMhixWU36gYIkk",    "valueNanoton": "1000000000",    "bodyBocBase64Url": "https://example.com/logo.png"  },  "vesting": {    "phase": "not_started",    "claimableAmount": "1000000000",    "vestedAmount": "1000000000",    "totalLpAmount": "1000000000",    "claimedLpAmount": "1000000000",    "vestingEnd": "2026-06-01T12:00:00Z"  },  "warnings": [    "example"  ]}
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}

Возвращает готовый к подписи URI ton://transfer/... для сообщения claim_vested, которое инвестор отправляет на свой контракт VestingVault (для конкретной кампании), чтобы забрать уже вестированные, но ещё не полученные LP.

Авторизация: dao_address из DAO-bearer-токена должен совпадать с DAO, которой принадлежит кампания. При несовпадении возвращается 403.

GET
/api/v1/crowdfunding/campaigns/{address}/vesting-claim-link

Authorization

DaoBearerAuth
AuthorizationBearer <token>

DAO service token in Bearer format. The token must be valid, not revoked, and authorized for the same dao_address as in the request path.

In: header

Path Parameters

address*string

Campaign address (crowdfunding master address)

Query Parameters

owner_address*string

Investor wallet address claiming LP tokens

query_id?integer

TON message query_id (uint64). Defaults to 0.

Formatint64
Range0 <= value

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/v1/crowdfunding/campaigns/EQAoZM5vjrPB1RgYQBpymvHrLmjucfhZcTuMhixWU36gYIkk/vesting-claim-link?owner_address=EQAoZM5vjrPB1RgYQBpymvHrLmjucfhZcTuMhixWU36gYIkk"
{  "kind": "initial",  "campaignAddress": "EQAoZM5vjrPB1RgYQBpymvHrLmjucfhZcTuMhixWU36gYIkk",  "tonTransfer": {    "uri": "ton://transfer/EQAoZM5v...?amount=1000000000&bin=te6..."  },  "details": {    "to": "EQAoZM5vjrPB1RgYQBpymvHrLmjucfhZcTuMhixWU36gYIkk",    "valueNanoton": "1000000000",    "bodyBocBase64Url": "https://example.com/logo.png"  },  "vesting": {    "phase": "not_started",    "claimableAmount": "1000000000",    "vestedAmount": "1000000000",    "totalLpAmount": "1000000000",    "claimedLpAmount": "1000000000",    "vestingEnd": "2026-06-01T12:00:00Z"  },  "warnings": [    "example"  ]}
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}

On this page