Interface CreatePluginPayload

interface CreatePluginPayload {
    duplicatesAllowed: boolean;
    metadata: {
        createdBy: string;
        description: string;
        documentation?: string;
        image: string;
        name: string;
        sourceCode?: string;
        supportLink?: string;
    };
    pluginId: string;
    privateParamsSchema: (JsonBodyInputSchema | {
        key: string;
        label: string;
        type: "ownershipRequirements";
    })[];
    publicParamsSchema: (JsonBodyInputSchema | {
        key: string;
        label: string;
        type: "ownershipRequirements";
    })[];
    requiresSessions: boolean;
    requiresUserInputs: boolean;
    reuseForNonIndexed: boolean;
    stateFunctionPreset: PluginPresetType;
    userInputsSchema: JsonBodyInputSchema[];
    verificationCall?: {
        hardcodedInputs: JsonBodyInputWithValue[];
        method: "POST" | "GET" | "PUT" | "DELETE";
        passAddress: boolean;
        passDiscord: boolean;
        passGithub: boolean;
        passGoogle: boolean;
        passTwitter: boolean;
        uri: string;
    };
}

Properties

duplicatesAllowed: boolean

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

metadata: {
    createdBy: string;
    description: string;
    documentation?: string;
    image: string;
    name: string;
    sourceCode?: string;
    supportLink?: string;
}

Type declaration

  • createdBy: string

    The creator of the plugin

  • description: string

    Description of the plugin

  • Optional documentation?: string

    Documentation for the plugin

  • image: string

    The image of the plugin

  • name: string

    The name of the plugin

  • Optional sourceCode?: string

    Source code for the plugin

  • Optional supportLink?: string

    Support link for the plugin

pluginId: string

The unique plugin ID

privateParamsSchema: (JsonBodyInputSchema | {
    key: string;
    label: string;
    type: "ownershipRequirements";
})[]
publicParamsSchema: (JsonBodyInputSchema | {
    key: string;
    label: string;
    type: "ownershipRequirements";
})[]
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 non-indexed?

stateFunctionPreset: PluginPresetType

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

userInputsSchema: JsonBodyInputSchema[]
verificationCall?: {
    hardcodedInputs: JsonBodyInputWithValue[];
    method: "POST" | "GET" | "PUT" | "DELETE";
    passAddress: boolean;
    passDiscord: boolean;
    passGithub: boolean;
    passGoogle: boolean;
    passTwitter: boolean;
    uri: string;
}

The verification URL

Type declaration

  • hardcodedInputs: JsonBodyInputWithValue[]
  • method: "POST" | "GET" | "PUT" | "DELETE"
  • passAddress: boolean
  • passDiscord: boolean
  • passGithub: boolean
  • passGoogle: boolean
  • passTwitter: boolean
  • uri: string