Interface iPluginVersionConfig<T>

interface iPluginVersionConfig<T> {
    claimCreatorRedirect?: {
        toolUri?: string;
        tutorialUri?: string;
    };
    createdAt: T;
    customDetailsDisplay?: string;
    duplicatesAllowed: boolean;
    finalized: boolean;
    ignoreSimulations?: boolean;
    lastUpdated: T;
    privateParamsSchema: JsonBodyInputSchema[];
    publicParamsSchema: JsonBodyInputSchema[];
    receiveStatusWebhook: boolean;
    requireSignIn?: boolean;
    requiresSessions: boolean;
    requiresUserInputs: boolean;
    reuseForNonIndexed: boolean;
    skipProcessingWebhook?: boolean;
    stateFunctionPreset: PluginPresetType;
    userInputRedirect?: {
        baseUri: string;
    };
    userInputsSchema: JsonBodyInputSchema[];
    verificationCall?: {
        hardcodedInputs: JsonBodyInputWithValue[];
        method:
            | "POST"
            | "GET"
            | "PUT"
            | "DELETE";
        passAddress?: boolean;
        passDiscord?: boolean;
        passEmail?: boolean;
        passFarcaster?: boolean;
        passGithub?: boolean;
        passGoogle?: boolean;
        passReddit?: boolean;
        passSlack?: boolean;
        passStrava?: boolean;
        passTelegram?: boolean;
        passTwitch?: boolean;
        passTwitter?: boolean;
        postProcessingJs: string;
        uri: string;
    };
    version: T;
}

Type Parameters

Implemented by

Properties

claimCreatorRedirect?: {
    toolUri?: string;
    tutorialUri?: string;
}
createdAt: T

The time the version was created

customDetailsDisplay?: string

Custom details display for the plugin. Use {{publicParamKey}} to dynamically display the values of public parameters.

Example: "This plugin checks for a minimum of {{publicBalanceParam}} balance."

duplicatesAllowed: boolean

Whether it makes sense for multiple of this plugin to be allowed

finalized: boolean

True if the version is finalized

ignoreSimulations?: boolean

Ignore simulations?

lastUpdated: T

The time the version was last updated

privateParamsSchema: JsonBodyInputSchema[]
publicParamsSchema: JsonBodyInputSchema[]
receiveStatusWebhook: boolean

Whether the plugin should receive status webhooks

requireSignIn?: boolean

Require BitBadges sign-in to use the plugin? This will ensure that any addresss received is actually verified by BitBadges. Otherwise, the address will be the claimee's address but it could be manually entered (if configuration allows).

We recommend keeping this false to allow for non-indexed support and also be more flexible for the claim creator's implementation.

requiresSessions: boolean

This means that the plugin can be used w/o any session cookies or authentication.

requiresUserInputs: boolean

This is a flag for being compatible with auto-triggered claims, meaning no user interaction is needed.

reuseForNonIndexed: boolean

Reuse for nonindexed balances? Only applicable if is stateless, requires no user inputs, and requires no sessions.

skipProcessingWebhook?: boolean

Whether the plugin should skip processing webhooks. We will just auto-treat it as successful.

stateFunctionPreset: PluginPresetType

Preset type for how the plugin state is to be maintained.

userInputRedirect?: {
    baseUri: string;
}
userInputsSchema: JsonBodyInputSchema[]
verificationCall?: {
    hardcodedInputs: JsonBodyInputWithValue[];
    method:
        | "POST"
        | "GET"
        | "PUT"
        | "DELETE";
    passAddress?: boolean;
    passDiscord?: boolean;
    passEmail?: boolean;
    passFarcaster?: boolean;
    passGithub?: boolean;
    passGoogle?: boolean;
    passReddit?: boolean;
    passSlack?: boolean;
    passStrava?: boolean;
    passTelegram?: boolean;
    passTwitch?: boolean;
    passTwitter?: boolean;
    postProcessingJs: string;
    uri: string;
}

The verification URL

version: T

Version of the plugin

""