Boost Action API
The Action API from Boost — 2 operation(s) for action.
The Action API from Boost — 2 operation(s) for action.
openapi: 3.1.0
info:
title: Boost V2 Action API
description: Get Boosts and sign claims for the Boost Validator
termsOfService: https://rabbithole-assets.s3.amazonaws.com/BoostStudios_Terms_Of_Service.pdf
contact:
url: https://airtable.com/appPys6nAx8smVpTA/shrqpPGsDx2W6oY24
email: support@boost.xyz
version: 2.0.0
servers:
- url: https://api-v2.boost.xyz
description: Boost V2
tags:
- name: Action
paths:
/action-templates:
get:
operationId: getActionTemplates
summary: Get all Action Templates
description: Returns all known Action Templates that can aid in initializing new Boost Actions and Incentives, with information about project smart contract deployments, event and function signatures, claimant configuration information, and placeholder reward configuration.
tags:
- Action
parameters:
- schema:
type: string
description: Filter by budget account address
example: '0x378632819f39c74c4f56b1429e760739c5fb51b7'
pattern: ^0x[a-fA-F0-9]{40}$
required: false
name: address
in: query
- schema:
type: boolean
default: true
description: 'Only return active templates (default: true)'
required: false
name: onlyActive
in: query
- schema:
type: string
description: Filter by template status(es). Accepts a single status or comma-separated list.
example: approved,pending
required: false
name: status
in: query
responses:
'200':
description: Returns a list of all Action Templates registered to the system
content:
application/json:
schema:
type: array
items:
type: object
properties:
actionTemplate:
type: object
properties:
id:
type: string
description: An arbitrary UUID uniquely identifying each Action Template
actionType:
type: string
description: A readable slug representing the type of action that must be taken in order to be eligible for a Boost claim, like "mint", or "create-any-token", or "buy-specific-token"
example: mint
projectId:
type: string
description: A readable slug representing the name of a project known to the Boost API, like "zora", or "coinboost"
example: zora
description:
type: string
description: Human readable text describing the action that must be taken in order to be eligible for a Boost claim
example: Reward any who buys a specific ERC-20 token on Zora
title:
type: string
description: Brief human readable text describing the action that must be taken in order to be eligible for a Boost claim
example: Buy a specific token
boostConfig:
type: object
properties:
selectedContract:
type: object
properties:
ID:
type: string
description: 'A system ID of the format: "eth:chainId:contractAddress" representing the smart contract that a Boost Action needs to target'
example: eth:8453:0x777777751622c0d3258f214f9df38e35bf45baf3
contract_name:
type: string
description: The contract's name from the original ABI
address:
type: string
description: The address of the deployed contract
example: '0x378632819f39c74c4f56b1429e760739c5fb51b7'
pattern: ^0x[a-fA-F0-9]{40}$
deployment_information:
type: object
properties:
address:
type: string
description: The address of the deployed contract
example: '0x378632819f39c74c4f56b1429e760739c5fb51b7'
pattern: ^0x[a-fA-F0-9]{40}$
network_id:
type: string
description: The chain ID of the deployed contract
example: '8453'
required:
- address
- network_id
required:
- ID
- contract_name
- address
- deployment_information
selectedSignatureHash:
type: string
description: ''
example: '0xb362243af1e2070d7d5bf8d713f2e0fab64203f1b71462afbe20572909788c5e'
selectedSignature:
type: string
description: The human readable event or function signature
example: event CoinCreated(address indexed caller, address indexed payoutRecipient, address indexed platformReferrer, address currency, string uri, string name, string symbol, address coin, address pool, string version)
parameterFilters:
type: array
items:
type: object
properties:
id:
type: string
description: A unix timestamp when this was added
parameter:
type: string
description: 'A string representing the name of the argument and the index of the argument, for example: "to:1"'
example: to:1
comparator:
type: string
description: 'When validating a claim, how should we compare equality, for example: ">", "<", "==", etc.'
example: ==
value:
type: string
description: The value to compare the parameter to using associated comparator and parameter
tupleParameter:
type: string
description: 'DEPRECATED: Use tupleParameters instead. Legacy field for single-level tuple support.'
deprecated: true
tupleParameters:
type: array
items:
type: string
description: 'Array of tuple parameter names for nested tuple support. Single level: ["field1:1"], Nested: ["field1:1", "nestedField:0", "deepField:2"]'
example:
- field1:1
required:
- id
- parameter
- comparator
- value
description: An array of function parameter details describing parameters of note, and comparators for the Boost Protocol to use when evaluating claims
logFilters:
type: array
items:
type: object
properties:
id:
type: string
description: ''
contract:
type:
- object
- 'null'
properties:
ID:
type: string
description: 'A system ID of the format: "eth:chainId:contractAddress" representing the smart contract that a Boost Action needs to target'
example: eth:8453:0x777777751622c0d3258f214f9df38e35bf45baf3
contract_name:
type: string
description: The contract's name from the original ABI
address:
type: string
description: The address of the deployed contract
example: '0x378632819f39c74c4f56b1429e760739c5fb51b7'
pattern: ^0x[a-fA-F0-9]{40}$
deployment_information:
type: object
properties:
address:
type: string
description: The address of the deployed contract
example: '0x378632819f39c74c4f56b1429e760739c5fb51b7'
pattern: ^0x[a-fA-F0-9]{40}$
network_id:
type: string
description: The chain ID of the deployed contract
example: '8453'
required:
- address
- network_id
required:
- ID
- contract_name
- address
- deployment_information
description: The contract address to filter on
signatureHash:
type: string
description: ''
example: '0xb362243af1e2070d7d5bf8d713f2e0fab64203f1b71462afbe20572909788c5e'
signature:
type:
- string
- 'null'
description: The event signature to filter on. Must be in event-definition format (see example)
example: event Transfer(address indexed from, address indexed to, uint256 amount)
parameters:
type: array
items:
type: object
properties:
id:
type: string
description: A unix timestamp when this was added
parameter:
type: string
description: 'A string representing the name of the argument and the index of the argument, for example: "to:1"'
example: to:1
comparator:
type: string
description: 'When validating a claim, how should we compare equality, for example: ">", "<", "==", etc.'
example: ==
value:
type: string
description: The value to compare the parameter to using associated comparator and parameter
tupleParameter:
type: string
description: 'DEPRECATED: Use tupleParameters instead. Legacy field for single-level tuple support.'
deprecated: true
tupleParameters:
type: array
items:
type: string
description: 'Array of tuple parameter names for nested tuple support. Single level: ["field1:1"], Nested: ["field1:1", "nestedField:0", "deepField:2"]'
example:
- field1:1
required:
- id
- parameter
- comparator
- value
description: An array of function parameter details
required:
- id
- contract
- signature
- parameters
selectedAbiItem:
type: object
description: The original function or event AbiItem for the action that must be completed in order to be eligible to complete a Boost
claimantContract:
type: object
properties:
ID:
type: string
description: 'A system ID of the format: "eth:chainId:contractAddress" representing the smart contract where a Boost can derive information on who''s eligible to claim'
example: eth:8453:0x777777751622c0d3258f214f9df38e35bf45baf3
contract_name:
type: string
description: The original name of the smart contract from its ABI
example: ZoraTimedSaleStrategy
address:
type: string
description: The address of the smart contract
example: '0x378632819f39c74c4f56b1429e760739c5fb51b7'
pattern: ^0x[a-fA-F0-9]{40}$
deployment_information:
type: object
properties:
address:
type: string
description: The address of the deployed smart contract
example: '0x378632819f39c74c4f56b1429e760739c5fb51b7'
pattern: ^0x[a-fA-F0-9]{40}$
network_id:
type: string
description: The chain ID where the smart contract is deployed
example: '7777777'
required:
- address
- network_id
description: An object specifying how to configure the Action claimant when creating a new Boost
required:
- ID
- contract_name
- address
- deployment_information
claimantSignatureHash:
type: string
description: ''
example: '0xb362243af1e2070d7d5bf8d713f2e0fab64203f1b71462afbe20572909788c5e'
claimantSignature:
type: string
description: ''
example: function mint(address mintTo, uint256 quantity, address collection, uint256 tokenId, address mintReferral, string comment) payable
claimantParameterMapping:
type: string
description: The name of the event or function argument representing how to derive the address of the person eligible for the claim
example: mintTo
reward:
type: object
properties:
type:
type: string
enum:
- fixed
- usd-pegged
- eth-pegged
- transaction-value
- variable-criteria
- pegged-variable-criteria
- usd-pegged-variable-criteria
description: A system enum representing the type of incentive to bootstrap creation with
example: pegged-variable-criteria
budget:
type: string
description: A placeholder Budget account address, if it exists
amount:
type: string
description: A placeholder reward amount, if it exists
rebatePercentage:
type: number
description: A placeholder percentage to peg the reward amount to
peg:
anyOf:
- type: string
description: Ethereum address
example: '0x378632819f39c74c4f56b1429e760739c5fb51b7'
pattern: ^0x[a-fA-F0-9]{40}$
- type: string
description: The address of the pegged token, or a dynamic reference like "buyToken:2" that will be resolved from parameter filters.
example: 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 or "buyToken:2"
required:
- budget
- amount
- rebatePercentage
description: An object specifying placeholder values to use when initializing Boost Incentives when creating a Boost
criteria:
type: object
properties:
signature:
type: string
description: The hexadecimal event signature for variable criteria rewards
example: '0xb362243af1e2070d7d5bf8d713f2e0fab64203f1b71462afbe20572909788c5e'
valueType:
type: number
description: A numeric identifier for the data type of the target value
fieldIndex:
type: number
description: The index of the field to use for variable criteria evaluation
criteriaType:
type: number
description: A numeric identifier for the type of criteria evaluation to perform
targetContract:
type: string
description: Contract address for criteria evaluation
required:
- signature
- valueType
- fieldIndex
- criteriaType
- targetContract
description: Configuration for variable criteria reward calculation
rewardMultiplier:
type: string
pattern: ^\d+$
description: A multiplier value for reward calculations
example: '4000000000000'
distributionChannel:
type: array
items:
type: string
enum:
- public
- farcaster
- worldcoin
- celo
- rabbithole
description: Array of distribution channels where this action template is available
required:
- selectedContract
- selectedSignature
- parameterFilters
- logFilters
- claimantContract
- claimantSignature
- claimantParameterMapping
- reward
description: An object containing information on how to interact with a project's smart contract as to be eligible for a Boost claim. Details include the target contract, ABI, function signature, event signature, and reward template information that can be used when configuring a Boost Action when creating a new Boost.
nameConfig:
type: object
properties:
template:
type: string
description: A template string representing how to dynamically name a Boost on creation
boostNameGenerator:
type: string
description: An internal system enum defining the function to call to generate the display name
abiFilters:
type: array
items:
type: object
properties:
signature:
type: string
description: A hexadecimal string representing the function or event selector. This string will always start with 0x, and end with the 32 byte selector. If selector is a function, then the 4 byte signature will be left padded with zeroes to 32 bytes.
example: '0x00000000000000000000000000000000000000000000000000000000a836f32f'
inputArgIndexes:
type: array
items:
type: number
description: 'The indexes of the arguments in the function or event signature to take into account when specifying the action to be '
inputArgValues:
type: array
items:
type: string
description: Optional array of expected values at each index. Empty string means any value. Must be same length as inputArgIndexes.
targetContract:
type: string
description: Optional contract address that must emit this event or have this function called on it
required:
- signature
- inputArgIndexes
description: A list of objects containing information on event or function selectors that define the action that must be taken in order to be eligible to claim a Boost
required:
- template
- boostNameGenerator
- abiFilters
description: An object containing information on how to derive a human readable name from a Boost configuration. Also includes the hexadecimal function or event signature for the action that must be taken to be eligible for a Boost claim.
isActive:
type: boolean
description: Whether this action template is currently active and available for use
urlTemplate:
type:
- string
- 'null'
description: URL template for generating project-specific links, with placeholders for dynamic values
allowlist:
type: array
items:
type: string
description: Ethereum address
example: '0x378632819f39c74c4f56b1429e760739c5fb51b7'
pattern: ^0x[a-fA-F0-9]{40}$
description: Array of Ethereum addresses that are allowed to use this action template. If empty, the template is available to everyone.
distributionChannel:
type: array
items:
type: string
enum:
- public
- farcaster
- worldcoin
- celo
- rabbithole
description: Array of distribution channels where this action template is available
verificationLevel:
type:
- string
- 'null'
description: Verification level needed for an action template
builderMetadata:
type:
- object
- 'null'
properties:
txHash:
type: string
description: Transaction hash used to generate the template
createdAt:
type: string
format: date-time
description: ISO timestamp for when the template was created
actionChain:
type: integer
description: Chain ID where the action transaction occurred
description:
type: string
description: Optional description provided for the template
budgetAccount:
type: object
properties:
chainId:
type: integer
description: Chain ID where the budget account is deployed
address:
type: string
description: Budget account address that created the template
example: '0x378632819f39c74c4f56b1429e760739c5fb51b7'
pattern: ^0x[a-fA-F0-9]{40}$
required:
- chainId
- address
description: Budget account that created the template
contactInfo:
type: string
description: Optional contact information for the template creator
projectUrl:
type: string
format: uri
description: Project URL submitted by template creator (template-level, populated server-side)
projectIconUrl:
type: string
format: uri
description: S3 URL of project icon uploaded by template creator (populated server-side)
isProjectCreator:
type: boolean
description: True if this template created the project entry, false if project already existed (populated server-side)
required:
- createdAt
- actionChain
- budgetAccount
description: Metadata about who created the template and how
status:
type: string
enum:
- pending
- approved
- rejected
- duplicated
description: The approval status of the template
category:
type:
- string
- 'null'
enum:
- defi
- nft
- gaming
- social
- bridge
- governance
- payments
- other
description: The category of the boost action
required:
- id
- actionType
- description
- title
- boostConfig
- nameConfig
- isActive
- urlTemplate
- allowlist
- distributionChannel
- verificationLevel
- builderMetadata
- status
- category
project:
type: object
properties:
id:
type: string
description: A readable slug representing the name of a project known to the Boost API, like
# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/boost/refs/heads/main/openapi/boost-action-api-openapi.yml