Skip to main content

Claim API

Verify your Solana Agentbot token balance and claim free agent credits. Token holders are assigned to a tier based on their balance, and credits are granted once per wallet. Claims require a cryptographic wallet signature to prove ownership.

Check eligibility

GET /api/claim
Checks whether a Solana address is eligible to claim credits without actually claiming. Returns the current token balance, matching tier, and whether the wallet has already claimed. Optionally returns a one-time nonce for use in the claim request.

Query parameters

ParameterTypeRequiredDescription
addressstringYesSolana wallet address (base58-encoded, 32–44 characters)
noncestringNoSet to 1 to receive a one-time nonce for signing the claim message

Example request

curl "https://agentbot.sh/api/claim?address=7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU&nonce=1"

Response

{
  "address": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
  "eligible": true,
  "alreadyClaimed": false,
  "claim": null,
  "balance": {
    "raw": "15000000000",
    "ui": 15000
  },
  "tier": {
    "id": "builder",
    "label": "Builder",
    "credits": 100,
    "minBalance": 10000
  },
  "nonce": "a1b2c3d4e5f6..."
}

Response fields

FieldTypeDescription
addressstringThe queried Solana wallet address
eligiblebooleantrue if the wallet qualifies for a tier and has not already claimed
alreadyClaimedbooleantrue if this wallet has already claimed credits
claimobject | nullThe existing claim record if already claimed, or null
balanceobjectToken balance for the address
balance.rawstringRaw token balance (as a string to preserve precision)
balance.uinumberHuman-readable token balance
tierobject | nullMatching tier details, or null if balance is below the minimum threshold
tier.idstringTier identifier (e.g. whale, builder, holder)
tier.labelstringTier display name
tier.creditsnumberCredits that would be granted at this tier
tier.minBalancenumberMinimum token balance required for this tier
noncestring | nullOne-time nonce for signing, returned only when nonce=1 is passed

Errors

CodeDescription
400Missing or invalid address query parameter
502Live Solana balance lookup is temporarily unavailable. Returned when the Solana RPC endpoint is unreachable or returns an error.

Claim credits

POST /api/claim
Verifies wallet ownership via a signed message, checks the caller’s Solana token balance, and grants credits based on the matching tier. Each wallet can claim once. If no authenticated session exists, an account is created automatically from the wallet address. A successful claim also grants a Founding Community badge and enrolls the wallet in the community program. Builder and Whale tier holders unlock additional perks such as governance voting rights and a baseFM guest pass. See the community program API for details.

Request body

FieldTypeRequiredDescription
addressstringYesSolana wallet address (base58-encoded, 32–44 characters)
messagestringYesThe message that was signed by the wallet
signaturestringYesBase64-encoded wallet signature of the message
noncestringYesOne-time nonce obtained from the GET /api/claim endpoint

Example request

{
  "address": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
  "message": "Claim Agentbot rewards for 7xKXtg...",
  "signature": "base64-encoded-signature...",
  "nonce": "a1b2c3d4e5f6..."
}

Credit tiers

Credits are determined by your Agentbot token balance at the time of the claim:
TierMinimum balanceCredits granted
Whale100,000200
Builder10,000100
Holder1,00050
The first matching tier is used (highest balance threshold first).

Response

{
  "success": true,
  "walletAddress": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
  "tier": "Builder",
  "creditsGranted": 100,
  "balance": {
    "raw": "15000000000",
    "ui": 15000
  },
  "claim": {
    "id": "cc_a1b2c3d4-...",
    "walletAddress": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
    "tier": "builder",
    "credits": 100
  }
}

Response fields

FieldTypeDescription
successbooleantrue when credits were granted
walletAddressstringThe wallet address that claimed
tierstringThe tier label assigned to the wallet
creditsGrantednumberNumber of credits granted
balanceobjectToken balance at time of claim
balance.rawstringRaw token balance (as a string to preserve precision)
balance.uinumberHuman-readable token balance
claimobjectThe created claim record
claim.idstringUnique claim identifier (prefixed with cc_)
claim.walletAddressstringThe wallet address associated with the claim
claim.tierstringTier identifier (e.g. whale, builder, holder)
claim.creditsnumberNumber of credits granted for this claim

Errors

CodeDescription
400Missing required fields (address, message, signature, nonce) or invalid Solana address format
401Invalid or expired nonce, or invalid wallet signature
403Wallet balance does not meet the minimum threshold for any tier
409Wallet has already claimed. Response includes the existing claim record.
500Unable to resolve user for claim, or unable to record claim
502Live Solana balance lookup is temporarily unavailable. Returned when the Solana RPC endpoint is unreachable or returns an error.

Error response (already claimed)

{
  "error": "Wallet already claimed",
  "claim": {
    "id": "cc_a1b2c3d4-...",
    "user_id": "user_abc123",
    "wallet_address": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
    "tier": "builder",
    "credits": 100,
    "created_at": "2026-04-10T12:00:00.000Z"
  }
}

Error response (not eligible)

{
  "error": "Wallet is not eligible for rewards",
  "balance": {
    "raw": "500000000",
    "ui": 500
  }
}
Claims require a wallet signature to prove ownership. Use a Solana wallet (e.g. Phantom, Solflare) to sign the claim message. The nonce is single-use and must be obtained from the GET endpoint before submitting the claim.