Btctransmuter is no longer maintained and will not be updated with new features. Avoid using it, if you can.
BtcTransmuter is a free, open-source & self-hosted tool that allows you to configure actions that execute automatically upon specified conditions. Its primary focus is the integration of cryptocurrency services to help users manage their funds and business workflow.
There are 3 main components in BtcTransmuter - External Services, Recipes and Extensions.
Send an Email using the SMTP External Service
and the trigger being If a new invoice was created on my BtcPay External Service
This project is still in early development and most likely has some bugs and quirks that need to be ironed out. The project is considered to be in ALPHA state, meaning not all desired functionality has been implemented and there can be breaking changes.
If you set up BTCPay using any dockerized install method, you can enable BTC Transmuter easily.
First, SSH into your server. Then run the following commands:
sudo su -
cd btcpayserver-docker
export BTCPAYGEN_ADDITIONAL_FRAGMENTS="$BTCPAYGEN_ADDITIONAL_FRAGMENTS;opt-add-btctransmuter"
. ./btcpay-setup.sh -i
If you have trouble starting your server after running the setup command, verify you have added the environment variable correctly to enable Transmuter.
Once completed, your Transmuter will be available at your configured BTCPay website under /btctransmuter/
, where the first account to register becomes the Transmuter admin. Open that link in your browser and you’ll see the homepage.
You can see a list of built-in extensions once you log into your transmuter application under /extensions
.
Currently there are 12 extensions that come bundled with the main application:
Currently there are three preset recipes that you can enable easily. In addition to the list below, you can create your own recipes for automating other tasks.
An extension must be its own .net core class library project that references BtcTransmuter.Abstractions
There must be a class implementing BtcTransmuterExtension
in this library. This file bootstraps the plugin name and adds all the services to system on startup.
BaseTrigger
This class will be used to transport the event dataImplement BaseTriggerHandler
This handles:
You will see that BaseTriggerHandler
has 2 generic arguments, a Data
and Parameters
Data
is the trigger that that was detected, while Parameters
is the data from a Recipe to see if it triggers its actions.
ViewPartial
in the BaseTriggerHandler
implementation)
This handles displaying the trigger settings in a recipeImplement BaseActionHandler
This handles:
You will see that BaseActionHandler
has a generic argument, Data
Data
is the type of the action that holds the payload needed to exeucte the action through the instructions of recipe action
ViewPartial
in the BaseActionHandler
implementation)
This handles displaying the action settings in a recipeBaseExternalService
& IExternalServiceDescriptor
ViewPartial
in the IExternalServiceDescriptor
implementation)