Appearance
Event Integrations
Events integrations available in the Stack dashboard can also be managed via the API.
Create integration
By creating an integration, events will be automatically tracked to the point system.
Example: NFT integration
This will give users 5 points for every user per Pudgy Penguin held.
typescript
await stack.createEventIntegration({
type: EventIntegrationType.NFT_HOLDER,
args: {
nftContractAddress: "0xbd3531da5cf5857e7cfaa92426877b022e612cf8",
chainId: 1,
points: 5,
}
});
// {
// uuid: '6f7b6676-b044-47f1-8d96-52bbdbb265b2',
// eventType: 'nft_transfer_1_0xBd3531dA5CF5857e7CfAA92426877b022e612cf8',
// pointValue: 5,
// status: 'ACTIVE',
// createdAt: '2024-08-23T15:17:28.266Z',
// updatedAt: '2024-08-23T18:03:38.901Z'
// }
Example: Farcaster followers integration
This will give users 5 points for every user that follows farcaster user id: 4109.
typescript
await stack.createEventIntegration({
type: EventIntegrationType.FARCASTER_FOLLOWERS,
args: {
fid: 4109,
points: 5,
}
});
// {
// uuid: '08caa191-70cf-433d-b65a-7d08bbf85cd6',
// eventType: 'farcaster_account_4109_followed_by',
// pointValue: 5,
// status: 'ACTIVE',
// createdAt: '2024-08-23T15:33:40.023Z',
// updatedAt: '2024-08-23T18:03:40.420Z'
// }
Get integrations
typescript
const response = await stack.getEventIntegrations(
{ type: EventIntegrationType.NFT_HOLDER }
);
// [{
// uuid: '6f7b6676-b044-47f1-8d96-52bbdbb265b2',
// eventType: 'nft_transfer_1_0xBd3531dA5CF5857e7CfAA92426877b022e612cf8',
// pointValue: 5,
// status: 'ACTIVE',
// createdAt: '2024-08-23T15:17:28.266Z',
// updatedAt: '2024-08-23T18:03:38.901Z'
// }]
Delete integration
Deleting an integration will also delete the events tracked by the integration.
Example NFT integration
Note: a point system can only have at most 1 NFT_HOLDER integration for a nft contract.
typescript
await stack.deleteEventIntegration({
type: EventIntegrationType.NFT_HOLDER,
args: {
nftContractAddress: "0xbd3531da5cf5857e7cfaa92426877b022e612cf8",
chainId: 1,
}
});
Example Farcaster Followers integration
Note: a point system can only have at most 1 FARCASTER_FOLLOWERS integration for a given fid.
typescript
await stack.deleteEventIntegration({
type: EventIntegrationType.FARCASTER_FOLLOWERS,
args: {
fid: 4109,
}
});