The One-Time Actions docs are under active development and will be subject to changes.
The Boost Protocol, fundamentally, needs to be able to validate that certain actions have occured in order to allow users to claim incentives. So in order to make it simple to create Boosts and validate them, we publish @boostxyz/signatures which is a registry of known function and event signatures, their 32 byte selectors, and AbiEvents or AbiFunctions in an easy to consume JSON format.
You can use this library as you’re creating a Boost and building out action steps for use with the Event Actions. You’ll need to specify the function or event’s signature, which allows Boost’s validators to parse the event or function arguments, and compare them against the rest of the actions’ parameters.
So in order to simplify applications that would otherwise need to know the hex encoded 4 byte function selector, or 32 byte event selector, and their associated ABI items, you can instead use this library to save on code and complexity.
If you’ve used a function or event signature from @boostxyz/signatures in the creation of your Boost, then you don’t have to do anything else for validation to work.
Otherwise, if you’re supplying a custom event signature unknown to @boostxyz/signatures and dealing with a Boost using a custom validator, you’ll need to additionally supply your own AbiEvent to validation methods so event logs can be correctly pulled off transactions.
For more detailed examples, see sample use cases
Contributing new signatures
If using the default Boost validator, you also have the option of submitting your contract events and functions to openchain.xyz or 4byte.directory, but contributing to @boostxyz/signatures is preferred due to its approach as a static manifest as opposed to a third party API.
To integrate your contracts with the Boost protocol:
The Boost Protocol team will review the submission and promptly release a new version of the @boostxyz/signatures package so you can continue your Boost Protocol integrations.