Class BitBadgesAdminAPI<T>

This is the BitBadgesAPI class which provides all typed API calls to the BitBadges API. See official documentation for more details and examples. Must pass in a valid API key.

convertFunction is used to convert any responses returned by the API to your desired NumberType.

import { BigIntify, Stringify, Numberify, BitBadgesAPI } from "bitbadgesjs-sdk";
const BitBadgesApi = new BitBadgesAPI({ convertFunction: BigIntify, ....})
const collections = await BitBadgesApi.getCollections(...);

By default, we use the official API URL (https://api.bitbadges.io). You can override this by passing in a custom apiUrl.

Type Parameters

Hierarchy (view full)

Constructors

Properties

Methods

Constructors

Properties

BACKEND_URL: string = ...
ConvertFunction: ((num: NumberType) => T)
accessToken: string = ''
apiKey: undefined | string = process.env.BITBADGES_API_KEY
appendedHeaders: Record<string, string> = {}
axios: AxiosInstance = ...

Methods

  • For password based approvals, we hand out codes behind the scenes whenever a user requests a password. This is to prevent replay attacks on the blockchain. This API call will return a valid code if a valid password is provided.

    Each address is limited to one code per password. If the password is provided again, they will receive the same code.

    Parameters

    Returns Promise<CompleteClaimSuccessResponse>

    • API Route: POST /api/v0/claims/complete/:claimId/:address
    • SDK Function Call: await BitBadgesApi.completeClaim(claimId, address, { ...body });
    • Authentication: Must be signed in.
    const res = await BitBadgesApi.completeClaim(claimId, address, { ...body });
    console.log(res);
  • Generates an Apple wallet pass for a code.

    Returns application/vnd.apple.pkpass content type.

    Returns Promise<GenerateAppleWalletPassSuccessResponse>

    • API Route: POST /api/v0/siwbbRequest/appleWalletPass
    • SDK Function Call: await BitBadgesApi.generateAppleWalletPass(payload);
    const res = await BitBadgesApi.generateAppleWalletPass(payload);
    console.log(res);
    const pass = Buffer.from(res.data);

    const blob = new Blob([pass], { type: 'application/vnd.apple.pkpass' });
    const url = window.URL.createObjectURL(blob);
    if (url) {
    const link = document.createElement('a');
    link.href = url;
    link.download = 'bitbadges.pkpass';
    link.click()
    }
  • Gets accounts and accompying details.

    Parameters

    Returns Promise<GetAccountsSuccessResponse<T>>

    • API Route: POST /api/v0/users
    • SDK Function Call: await BitBadgesApi.getAccounts(payload);
    • Tutorial: See the Fetching Accounts tutoral on the official docs.
    • Authentication: Must be signed in, if fetching private information such as private lists or auth codes. If fetching public information only, no sign in required.
    const res = await BitBadgesApi.getAccounts([{ address, fetchSequence: true, fetchBalance: true }]);
    console.log(res);

    This function is used to fetch accounts and their details. It is your responsibility to join the data together (paginations, etc). Use getAccountsAndUpdate for a more convenient way to handle paginations and appending metadata.

  • Performs multiple bin actions in batch.

    Parameters

    • payload: BatchBinActionPayload
    • binId: string
    • binSecret: string
    • bodyAuth: boolean = true

      There are two ways to pass in the payload.

      1. Body Auth: POST /api/v0/bin-actions/batch
      2. Path Auth: POST /api/v0/bin-actions/batch/{binId}/{binSecret}

      Since you are calling from the API and have control over the payload, we always recommend the body auth for more security.

    Returns Promise<BatchBinActionSuccessResponse>

    • API Route: POST /api/v0/bin-actions/batch/{binId}/{binSecret}
    • API Route (Body Auth): POST /api/v0/bin-actions/batch
    • SDK Function Call: await BitBadgesApi.performBatchBinAction(payload);
    • Authentication: Must be signed in.
  • Performs a bin action.

    Parameters

    • payload: PerformBinActionPayload
    • actionName: string
    • binId: string
    • binSecret: string
    • bodyAuth: boolean = true

      There are two ways to pass in the payload.

      1. Body Auth: POST /api/v0/bin-actions/single
      2. Path Auth: POST /api/v0/bin-actions/{actionName}/{binId}/{binSecret}

      Since you are calling from the API and have control over the payload, we always recommend the body auth for more security.

    Returns Promise<PerformBinActionSuccessResponse>

    • API Route: POST /api/v0/bin-actions/{actionName}/{binId}/{binSecret}
    • API Route (Body Auth): POST /api/v0/bin-actions/single
    • SDK Function Call: await BitBadgesApi.performBinAction(payload);
    • Authentication: Must be signed in.
  • Triggers a metadata refresh for a specific collection. BitBadges API uses a refresh queue system for fetching anything off-chain. This will refetch any details for the collection (such as metadata, balances, approval details, etc). Note it will reject if recently refreshed. Uses a cooldown of 5 minutes.

    Parameters

    Returns Promise<RefreshMetadataSuccessResponse>

    • API Route: POST /api/v0/collection/:collectionId/refresh
    • SDK Function Call: await BitBadgesApi.refreshMetadata(collectionId, payload);
    const res = await BitBadgesApi.refreshMetadata(collectionId);
    console.log(res);