Something.cool
  • Getting started
    • Why Something.cool?
    • 1st stage - Bonding curve
    • 2nd stage - CoolDEX trading
  • Zero-fee coins
    • What is Zero-fee coin?
    • How to launch Zero-fee coin
  • Community coins
    • What is Community coin?
    • Community contribution / How it works?
      • Holders
      • Liquidity providers
      • Burning
    • How to launch Сommunity coin
  • Features
    • Coin Explore
      • New Pairs
      • Coin Vision
    • Spaces
    • Rewards
  • Community
    • Referral program
    • X
    • Media kit
  • Developer Resources
  • Platform Architecture
    • Technical Introduction
    • Overview
    • Components
  • SC Bonding Curve
    • Overview
    • Functions
      • Create Token
      • Buy Token
      • Sell Token
      • Migrate
      • Admin Set Properties
    • Price Calculation
    • Fees
  • CoolDEX
    • Overview
    • Functions
      • Initialize Pool
      • Swap Base In
      • Swap Base Out
      • Deposit
      • Withdraw
      • Withdraw PnL
    • Price Calculation
    • Fees
  • Token Types
    • Token Types
  • Migration Process
    • Migration Process
  • Rewards Claiming
    • Overview
    • Authentication
    • Endpoints
    • Errors
    • Example
  • Reference
    • SC Bonding Curve IDL
    • CoolDEX IDL
    • Log Structure
    • DEVNET EXAMPLES
  • INTERNAL API
    • Overview
    • Register
  • Example: Registering a User via Internal API (JavaScript)
Powered by GitBook
On this page
  • Base URL
  • Endpoints Overview
  • Get All Claimable Rewards
  • Request
  • Response
  • Get Specific Token Claimable Rewards
  • Request
  • Response
  • Check Claim Transaction Status
  • Request
  • Response
  • Initiate Claim
  • Request
  • Response
  • Rate Limits
  1. Rewards Claiming

Endpoints

Base URL

All API requests should be prefixed with the base URL:

Coming Soon

⚠️ Note: The final production URL will be announced soon.

Endpoints Overview

Endpoint
Method
Authentication Required
Description

/rewards/:address

GET

Yes

Get all claimable rewards for a wallet

/rewards/:address/tokens/:tokenAddress

GET

Yes

Get claimable rewards for a specific token

/rewards/:signature/status

GET

No

Check status of a claim transaction

/rewards/:address/initiate

POST

Yes

Initiate a claim transaction


Get All Claimable Rewards

Retrieves all claimable reward amounts for a specified wallet address. Requires signature verification to prove wallet ownership.

Request

URL: /rewards/:address

Method: GET

URL Parameters:

  • address: Solana wallet address to check rewards for

Headers:

  • X-Signature: The base58-encoded signature of the timestamp

  • X-Timestamp: The Unix timestamp in milliseconds that was signed

Response

Success Response (200 OK):

{
  "status": "success",
  "data": [
    {
      "unclaimedRewards": {
        "sol": 5100000000,
        "solUi": "5.1",
        "token": 1000000020000,
        "tokenUi": "1000000.02"
      },
      "allTimeRewards": {
        "sol": 6230000000,
        "solUi": "6.23",
        "token": 5000000020000,
        "tokenUi": "5000000.02"
      },
      "tokenInfo": {
        "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
        "symbol": "TKN",
        "name": "Example Token",
        "image": "https://example.com/token.png",
        "price": 0.42
      }
    }
    // Additional tokens...
  ]
}

Error Responses:

  • 401 Unauthorized: Invalid signature

    {
      "status": "error",
      "code": "INVALID_SIGNATURE",
      "message": "Signature verification failed"
    }
  • 400 Bad Request: Invalid Solana address

    {
      "status": "error",
      "code": "VALIDATION_ERROR",
      "message": "Invalid request parameters",
      "errors": [
        {
          "field": "address",
          "message": "Invalid Solana address"
        }
      ]
    }

Get Specific Token Claimable Rewards

Retrieves claimable reward amounts for a specific wallet address and token. Requires signature verification to prove wallet ownership.

Request

URL: /rewards/:address/tokens/:tokenAddress

Method: GET

URL Parameters:

  • address: Solana wallet address to check rewards for

  • tokenAddress: Solana token address to check rewards for

Headers:

  • X-Signature: The base58-encoded signature of the timestamp

  • X-Timestamp: The Unix timestamp in milliseconds that was signed

Response

Success Response (200 OK):

{
  "status": "success",
  "data": {
    "unclaimedRewards": {
      "sol": 5100000000,
      "solUi": "5.1",
      "token": 1000000020000,
      "tokenUi": "1000000.02"
    },
    "allTimeRewards": {
      "sol": 6230000000,
      "solUi": "6.23",
      "token": 5000000020000,
      "tokenUi": "5000000.02"
    }
  }
}

Error Responses:

  • 404 Not Found: Token not found

    {
      "status": "error",
      "code": "TOKEN_NOT_FOUND",
      "message": "Token not found"
    }
  • 400 Bad Request: Invalid parameters

    {
      "status": "error",
      "code": "VALIDATION_ERROR",
      "message": "Invalid request parameters",
      "errors": [
        {
          "field": "tokenAddress",
          "message": "Invalid Solana token address"
        }
      ]
    }

Check Claim Transaction Status

Checks the status of a claim transaction by signature. Requires signature verification to prove wallet ownership.

Request

URL: /rewards/:signature/status

Method: GET

URL Parameters:

  • signature: The transaction signature to check

Response

Success Response (200 OK):

{
  "status": "success",
  "data": {
    "status": "COMPLETED",
    "message": "Claim completed"
  }
}

The status field in the response data can be one of:

  • COMPLETED: The claim transaction was successful.

  • IN_PROGRESS: The claim transaction is still being processed.

  • FAILED: The claim transaction failed, you can inititate a new one.

  • EXPIRED: The claim transaction expired, you can initiate a new one.

Error Responses:

  • 404 Not Found: Claim not found

    {
      "status": "error",
      "code": "CLAIM_NOT_FOUND",
      "message": "Claim not found"
    }
  • 400 Bad Request: Invalid signature

    {
      "status": "error",
      "code": "VALIDATION_ERROR",
      "message": "Invalid request parameters",
      "errors": [
        {
          "field": "signature",
          "message": "Invalid signature length"
        }
      ]
    }

Initiate Claim

Initiates a claim for rewards. Requires signature verification to prove wallet ownership.

Request

URL: /rewards/:address/initiate

Method: POST

URL Parameters:

  • address: The Solana wallet address initiating the claim

Headers:

  • X-Signature: The base58-encoded signature of the timestamp

  • X-Timestamp: The Unix timestamp in milliseconds that was signed

Request Body:

{
  "tokenAddress": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
  "claimType": "SOL", // or "TOKEN"
  "burnToken": false // Optional, defaults to false
}

Response

Success Response (200 OK):

{
  "status": "success",
  "data": {
    "tx": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAIFXWWy5rWLJXXdYR/e3TNGihD8OfE1jKf8QX9JJ7ztCRfBV2HdGaTI8QQiVn5cjgecLLrtPWWyPftsYCq1jQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxJaxjh4N/v8IUBQYKlOgN2ndOGE/TJVvdT0xChhQvwgGp9UXGSxcUSGMyUw9SvF/WNPHDlZ0CqpPcJpjbjAAAAAAjJclj04TfbV4PUmaYD9PjzBRUTWBhf36dUjpqF/JAQAAAAEDAgAAAQAAAAAAAAA="
  }
}

This response contains a partially signed transaction in Base64 format. This transaction must be:

  1. Deserialized

  2. Signed by the wallet owner

  3. Submitted to the Solana network

Error Responses:

  • 400 Bad Request: Invalid parameters or zero claim amount

    {
      "status": "error",
      "code": "CLAIM_ERROR",
      "message": "SOL amount to claim is zero"
    }
  • 401 Unauthorized: Invalid signature

    {
      "status": "error",
      "code": "INVALID_SIGNATURE",
      "message": "Signature verification failed"
    }
  • 409 Conflict: A claim is already in progress

    {
      "status": "error",
      "code": "CLAIM_IN_PROGRESS",
      "message": "A claim for this token is already in progress"
    }

Rate Limits

All endpoints are subject to rate limiting:

  • Limit: 100 requests per 15-minute window per IP address

  • Response when exceeded:

    {
      "status": "error",
      "code": "RATE_LIMIT_EXCEEDED",
      "message": "Too many requests, please try again later"
    }
PreviousAuthenticationNextErrors

Last updated 1 month ago