Blocked Points SDK
Using the SDK
Use the SDK to integrate Blocked Points SDK into your app in minutes. The SDK is available in Typescript and Javascript.
Best Practices
- Make sure to keep your API key secure and do not expose it in client-side code.
- Use meaningful event names that clearly describe the action being performed.
Get Started
Get your API key
Contact Blocked Protocol team to receive your private keys
Installation
npm add @blockedprotocol/points-sdk
Initialize the client
Use the newBlockedSdk
method to initialize the client, providing your API key and point system id.
import { newBlockedSdk } from "@blockedprotocol/points-sdk";
const blockedSdk = newBlockedSdk({
apiKey: "YOUR_API_KEY",
pointsSystemId: "YOUR_POINT_SYSTEM_ID",
});
By default it'll use production environment, but you can pass env: "development"
to use development environment.
Add points and tag the event
Tagging each point assignment with an event name is important for tracking and analytics.
await blockedSdk.points.track("login", {
points: 100,
account: "11111111111111111111111111111111",
});
await blockedSdk.points.track("transfer_eth_cosmos", {
points: 515,
account: "22222222222222222222222222222222",
});
Substract points
You can substract points for account using the negative value. The following example will decrement 50 points:
await blockedSdk.points.track("penalty", {
points: -50,
account: "11111111111111111111111111111111",
});
Get points for an account
Get the points for an account using the getPoints method, providing the account address.
await blockedSdk.points.getPoints("11111111111111111111111111111111");
Get leaderboard
Get the leaderboard using the getLeaderboard method. The response defaults to the top 100 users.
Pagination support coming soon
await blockedSdk.points.getLeaderboard();
Get Leaderboard Rank
Get the rank of an account in the leaderboard using the getLeaderboardRank method.
await blockedSdk.points.getLeaderboardRank("11111111111111111111111111111111");
Get events
Get the events for a specific event name using the getEvents method.
await blockedSdk.points.getEvents({
account: "11111111111111111111111111111111",
event: "login",
});
If you don't specify the event
field, it'll return all events for a given account
Create User
User
- is an entity allows to link multiple accounts and utilize referral system
await blockedSdk.users.create([
"11111111111111111111111111111111",
"22222222222222222222222222222222",
]);
Create user and add referrer
const referrerUser = blockedSdk.users.findByAccount(
"22222222222222222222222222222222"
);
await blockedSdk.users.create(["11111111111111111111111111111111"], referrerUser.id);
Get points for user
Returns cumulutive value for all accounts linked to user
const user = blockedSdk.users.findByAccount("11111111111111111111111111111111");
await blockedSdk.points.getPointsForUser(user.id);