Triggers reference
The seven triggers an event listener can watch for, their options, and why one event can fire a listener twice.
Platform v0.x
The Event Listener enables users to detect specific events that align with predefined criteria, known as triggers. These triggers can be configured via the mintBlue Console to respond to either internal events within the mintBlue ecosystem or to real-time transactions occurring on the public audit layer. Below is the reference.
Interfaces
BitcomPeppolPayment fromPayment toBitquerymintBlue transaction insertedmintBlue transaction created
Bitcom
- Type:
BITCOM - Options:
bitcom_protocol_id
{
type: 'BITCOM';
options: {
bitcom_protocol_id: string;
}
}Peppol
- Type:
PEPPOL - Options:
pubKey
{
type: 'PEPPOL';
options: {
pubKey: string;
}
}Payment from
- Type:
PAYMENT_FROM - Options:
from_address
{
type: 'PAYMENT_FROM';
options: {
from_address: string;
}
}Payment to
- Type:
PAYMENT_TO - Options:
to_address
{
type: 'PAYMENT_TO';
options: {
to_address: string;
}
}Bitquery
- Type:
BITQUERY - Options:
bitquery: bitquery is a JSON.stringify of a Bitquery.
{
type: 'BITQUERY';
options: {
bitquery: string;
}
}mintBlue transaction inserted
- Description: Triggers when a transaction is inserted in a project on your account by another event listener.
- Type:
mintblue.transaction.inserted - Options:
project_id: Ifproject_idis given, only match the event when it was inserted in the corresponding project.txo: Iftxois given, only match if the TXO representation of the transaction matches your predicate (see BitQuery).
{
type: 'mintblue.transaction.inserted',
options: {
project_id: string | null;
txo: object | null;
}
}mintBlue transaction created
- Description: Triggers when a transaction is created on your account.
- Type:
mintblue.transaction.created - Options:
project_id: Ifproject_idis given, only match the event when it was inserted in the corresponding project.txo: Iftxois given, only match if the TXO representation of the transaction matches your predicate (see BitQuery).
{
type: 'mintblue.transaction.created',
options: {
project_id: string | null;
txo: object | null;
}
}I'm seeing duplicate events?
The types Bitcom, Peppol, Payment from, Payment to, Bitquery can be triggered for multiple reasons:
- when a transaction is seen on the public audit layer
- when a transaction is inserted into a project
- when a transaction is created in mintBlue
To see why an event was triggered, see the event.topic property inside the event body:
{
"version": 1,
"subscription": {
"id": "a7efeea9-c5ce-4f65-a827-eed28145d982",
"name": "webhook 1",
"trigger": {
"type": "PAYMENT_TO",
"options": {
"to_address": "12mm8RPb8rdGo2pR9HATW7R93ejRc9XSKy"
}
},
"actions": [
{
"type": "webhook",
"options": {
"url": "https://webhook.site/<your-token>"
}
}
],
"user_id": "e73836d9-e81e-42ac-9923-296b72508866",
"account_id": "f3d73993-86bd-4d6a-b6bc-9cbd0e29530e",
"createdAt": "2024-01-18T16:25:33.357Z",
"updatedAt": "2024-01-18T16:25:33.357Z"
},
"event": {
"_source_type": "zmq",
"_source_host": "100.96.30.121",
"_source_topic": "rawtx2",
"topic": "bitcoin.transaction.seen",
"content": {
"txid": "c545171e152f063bba18bd97d0e3a1eeee315f01050594e03eae351118cef731"
}
},
"includeRawtx": false
}Each of these events corresponds to a topic name:
bitcoin.transaction.seenmintBlue.transaction.insertedmintBlue.transaction.created
As an example: when using the PAYMENT_TO trigger with 2 actions configured: insert_into_project, webhook; a payment to the configured address will cause the actions to be executed. Because the first action insert_into_project publishes an internal mintBlue.transaction.inserted event, the original PAYMENT_TO trigger will be executed a second time:
- The webhook action will be called twice but with different topic names as the source event (see the
topicproperty in the example above) - The
insert_into_projectaction will only insert the transaction into the project once