Supported providers
We support a wide range of different IPFS providers. If you would like to integrate your provider, feel free to submit a pull request.
Filebase
- URL: https://filebase.com
- API Docs: https://docs.filebase.com/api-documentation/ipfs-pinning-service-api
- API token env variables:
BLUMEN_FILEBASE_TOKENfor pinning (if not the first provider), additionallyBLUMEN_FILEBASE_BUCKET_NAMEfor upload + pin. - Supported methods: Upload, Pin, Status
BLUMEN_FILEBASE_TOKEN for upload + pin is obtained by encoding access key and access secret to base64. Access key and access secret could be found in the Filebase console.

The easiest way to generate an S3 API token is using the base64 command:
echo "accessKey:accessSecret" | base64echo "accessKey:accessSecret" | base64web3.storage
- URL: https://web3.storage
- API Docs: https://web3.storage/docs/
- API token env variables:
BLUMEN_W3S_TOKEN,BLUMEN_W3S_PROOF - Supported methods: Upload
New web3.storage platform is more self-sovereign, so it requires a bit more work to set up.
First you have to install w3up cli:
npm i -g @web3-storage/w3clinpm i -g @web3-storage/w3clipnpm i -g @web3-storage/w3clipnpm i -g @web3-storage/w3clibun i -g @web3-storage/w3clibun i -g @web3-storage/w3cliThen you need to login to your web3.storage account:
w3 login <[email protected]>w3 login <[email protected]>Once log in is successful, you need to select your space. Grab the DID (the did:key:... string) from web3.storage web console and run the following command:
w3 space use did:key:...w3 space use did:key:...When both the account and the space are set up, you need to generate a unique private key. Later we'll need it to generate a proof (that gives us permit to upload files on web3.storage).
npx ucan-key ednpx ucan-key edpnpx ucan-key edpnpx ucan-key edbunx ucan-key edbunx ucan-key edSave this private key (which starts with Mg..) to an environment variable (BLUMEN_W3S_TOKEN).
You also need to create a delegation for the generated DID:
w3 delegation create <did_from_ucan-key_command_above> | base64w3 delegation create <did_from_ucan-key_command_above> | base64It's recommended to additionally supply --can 'store/add' --can 'upload/add' flags to the first command to limit access to only uploading files.
Save the command output in a BLUMEN_W3S_PROOF environment variable or save it to a file (that should not be uploaded!) and then read from it like this:
BLUMEN_W3S_PROOF=`cat proof.txt`BLUMEN_W3S_PROOF=`cat proof.txt`Gateway3
- URL: https://www.gw3.io
- API Docs: https://doc.gw3.io/api/gateway/pinning.html
- API token env variables:
BLUMEN_GW3_TOKEN,BLUMEN_GW3_ACCESS_KEY - Supported methods: Upload, Pin, Status