Switchboards V3 architecture allows users to permissionlessly build and run any code you like and we attest the output is from your code.
Edit the Makefile with your docker image name. Make sure to include your docker
organization if publishing to the repository (For example:
switchboard/my-function
).
Run the following command to build the docker image with your custom function
make
You should see a measurement.txt
in the root of the project containing the
base64 encoding of the MRENCLAVE measurement. You will need to re-generate this
measurement anytime your source code or dependencies change.
make publish
To get started, you will first need to:
- Build your docker image and upload to a Docker/IPFS repository
- Generate your MRENCLAVE measurement
Next, you will need to create a Function account for your given MRENCLAVE measurement. Head over to app.switchboard.xyz and create a new function with your given repository and MRENCLAVE measurement.
Alternatively, create a function with the Switchboard CLI:
npm i --global @switchboard-xyz/cli
sbv2 solana function create CkvizjVnm2zA5Wuwan34NhVT3zFc7vqUyGnA6tuEF5aE \
--name "My Function" \
--metadata "Basic binance oracle with TWAP" \
--fundAmount 0.25 \
--schedule "30 * * * * *" \
--container switchboardlabs/basic-oracle-function \
--keypair ~/.config/id/solana.json
# or fund an existing function
sbv2 solana function fund $MY_FUNCTION_PUBKEY \
--fundAmount 0.25 \
--keypair ~/.config/id/solana.json
See docs.switchboard.xyz to get started.