Class BitBadgesAPI<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. , iGetDeveloperAppsPayload 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 Summary)

Constructors

Properties

Methods

assertPositiveInteger broadcastTx calculatePoints checkClaimSuccess checkIfSignedIn completeClaim createAddressLists createApplication createAttestation createClaims createDeveloperApp createDynamicDataStore createSIWBBRequest createUtilityListing deleteAddressLists deleteApplication deleteAttestation deleteClaims deleteDeveloperApp deleteDynamicDataStore deleteSIWBBRequest deleteUtilityListing exchangeSIWBBAuthorizationCode filterBadgesInCollection generateAppleWalletPass generateGoogleWallet getAccount getAccounts getAddressList getAddressListActivity getAddressListClaims getAddressListListings getAddressLists getAddressListsForUser getApplication getApplications getAttemptDataFromRequestBin getAttestation getAttestations getAttestationsForUser getBadgeActivity getBadgeBalanceByAddress getBadgeBalanceByAddressSpecificBadge getBadgeMetadata getBadgesViewForUser getClaim getClaimActivityForUser getClaimAlertsForUser getClaimAttempts getClaimAttemptStatus getClaims getCollection getCollectionAmountTrackerById getCollectionAmountTrackers getCollectionChallengeTrackerById getCollectionChallengeTrackers getCollectionClaims getCollectionListings getCollectionOwners getCollections getCollectionTransferActivity getDeveloperApp getDeveloperApps getDynamicDataActivity getDynamicDataStore getDynamicDataStores getDynamicDataStoreValue getDynamicDataStoreValuesPaginated getGatedContentForClaim getListActivityForUser getMap getMaps getMapValue getMapValues getOwnersForBadge getPlugin getPlugins getPointsActivity getPointsActivityForUser getRefreshStatus getReservedClaimCodes getSearchResults getSIWBBRequestsForDeveloperApp getSiwbbRequestsForUser getStatus getTransferActivityForUser getUtilityListing getUtilityListings handleApiError performBatchStoreAction performStoreAction refreshMetadata revokeOauthAuthorization rotateSIWBBRequest searchApplications searchClaims searchDeveloperApps searchDynamicDataStores searchUtilityListings sendClaimAlert setAccessToken simulateClaim simulateTx unsetAccessToken updateAddressListAddresses updateAddressListCoreDetails updateApplication updateAttestation updateClaims updateDeveloperApp updateDynamicDataStore updateUtilityListing uploadBalances verifyAttestation verifyOwnershipRequirements

Constructors

Properties

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

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 }]);
    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.

  • 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);
  • Simulates a claim attempt. A success response means the claim is valid and can be completed.

    Parameters

    Returns Promise<SimulateClaimSuccessResponse>

    • API Route: POST /api/v0/claims/simulate/:claimId/:address
    • SDK Function Call: await BitBadgesApi.simulateClaim(claimId, address, { ...body });
    • Authentication: Must be signed in.
    const res = await BitBadgesApi.simulateClaim(claimId, address, { ...body });
    console.log(res);
  • Simulates a transaction on the blockchain.

    Parameters

    Returns Promise<SimulateTxSuccessResponse>

    • API Route: POST /api/v0/simulate
    • SDK Function Call: await BitBadgesApi.simulateTx(payload);
    • Tutorial: See Broadcasting Transactions tutorial on the official docs.

    This means that it will return the gas used and any errors that occur on a dry run. Should be used before broadcasting a transaction. Does not require signatures.

MMNEPVFCICPMFPCPTTAAATR