Documentation

Take a look under the hood to learn how Encrypted Energy can serve as the foundation for your node operations.

Data Collector

Automatic data collection instrumentation for LND nodes.

Add a read-only macaroon to authorize acccess to your node — and that's it.

We designed a simple, 'click-to-connect' experience so that you can quickly get back to operating on your node. After your node is connected, we'll begin scraping your node for data from dozens of LND methods and metric dimensions that span the entierity of your node's health and performance.

Streams

Event-driven data pipelines that enable scalable and decentralized node operations.

Event Object Key Example Value Description
Header['ce-source'] https://encryptedenergy.com/ The entity generating the event.
Header['ce-id'] aced262f-c975-4326-b2b5-984d3007b71b The unique event id for de-duplication.
Header['ce-type'] encryptedenergy.command.channels.attempt_rebalance The context of the body payload.
Body {} Information necessary for operating on your node.

Our event schema adheres to the CloudEvents open standards.

Example Event Body Payloads
Commands
encryptedenergy.command.channels.attempt_rebalance

{
  "amount": <integer>,
  "outgoing_chan_id": <string>,
  "last_hop_node_public_key": <string>
}

encryptedenergy.command.channels.update_fee_policy

{
  "channel_id": <string>,
  "base_fee_msat": <integer>,
  "fee_rate_per_mil": <integer>
}

encryptedenergy.command.channels.create_static_backup

{
  "last_backup_attempt": <string>
}

Notifications
lightning.node.channel.open_initiated

{
  "from": <string>,
  "to": <string>,
  "capacity": <string>
}

lightning.node.channel.opened

{
  "from": <string>,
  "to": <string>,
  "capacity": <string>
}

lightning.node.channel.close_initiated

{
  "channel_id": <string>,
  "closing_tx_hash": <string>,
  "close_initiator": <string>
}

lightning.node.channel.closed

{
  "channel_id": <string>,
  "closing_tx_hash": <string>,
  "close_initiator": <string>,
  "close_height": <integer>,
  "close_settled_balance": <string>,
  "close_time_locked_balance": <string>,
  "close_type": <string>,
  "close_zero_conf_confirmed_scid": <string>,
  "close_resolutions": <array>
}

lightning.node.channel.local_balance_changed

{
  "from": <float>,
  "to": <float>
}

lightning.node.channel.remote_balance_changed

{
  "from": <float>,
  "to": <float>
}

lightning.node.payment.forwarded

{
   "node_in_alias": <string>,
   "node_out_alias": <string>,
   "chan_id_in": <string>,
   "chan_id_out": <string>,
   "amount": <string>,
   "fee": <string>
}

lightning.node.payment.sent

{
   "payment_hash": <string>,
   "value": <string>,
   "fee": <string>
}

lightning.node.invoice.created

{
   "memo": <string>,
   "value": <string>,
   "payment_request": <string>
}

lightning.node.invoice.payment_received

{
   "invoice_recursive_hash": <string>,
   "chan_id_in": <string>,
   "amt_msat": <string>,
   "state": <string>
}

lightning.node.invoice.canceled

{
  "payment_hash": <string>
}

lightning.node.invoice.settled

{
   "invoice_recursive_hash": <string>,
   "amt_paid_msat": <string>
}

lightning.node.transaction.sent

{
   "tx_hash": <string>,
   "value": <string>,
   "fees": <string>
}

lightning.node.transaction.received

{
   "tx_hash": <string>,
   "value": <string>
}

lightning.node.watchtower.client_connected

{}

lightning.node.watchtower.client_disconnected

{}

lightning.node.wallet.locked

{
   "from": <string>,
   "to": <string>
}

lightning.node.wallet.unlocked

{
   "from": <string>,
   "to": <string>
}

lightning.node.config.alias_changed

{
   "from": <string>,
   "to": <string>
}

lightning.node.config.min_channel_size_changed

{
   "from": <integer>,
   "to": <integer>
}

lightning.node.config.client_version_changed

{
   "from": <string>,
   "to": <string>
}

lightning.node.chain.synced

{
   "from": <boolean>,
   "to": <boolean>
}

lightning.node.graph.synced

{
   "from": <boolean>,
   "to": <boolean>
}

bitcoin.timechain.block.created

{
   "height": <integer>,
   "block_hash": <string>,
   "tx_count": <integer>,
   "size": <integer>,
   "weight": <integer>,
   "merkle_root": <string>
   "previous_block_hash": <string>,
   "median_time": <integer>,
   "nonce": <integer>,
   "height": <integer>,
   "bits": <integer>,
   "difficulty": <integer>
}

bitcoin.timechain.block.confirmed

{
   "in_best_chain": <boolean>,
   "height": <integer>
}

bitcoin.node.difficulty_target.adjusted

{
   "height": <integer>,
   "difficulty": <integer>,
   "difficulty_change": <float>
}

encryptedenergy.billing.invoice.created

{
   "invoice_id": <string>,
   "billing_period_start": <datetime>,
   "billing_period_end": <datetime>,
   "amount_due_sats": <float>,
   "memo": <string>,
   "payment_request": <string>,
   "status": <string>
}

encryptedenergy.billing.invoice.paid

{
   "invoice_id": <string>,
   "billing_period_start": <datetime>,
   "billing_period_end": <datetime>,
   "amount_due_sats": <float>,
   "amount_paid_sats": <float>,
   "memo": <string>,
   "payment_request": <string>,
   "status": <string>,
   "settle_date": <datetime>
}

lightning.node.wallet.confirmed_balance_changed

{
   "from": <string>,
   "to": <string>
}

lightning.node.channel.fee_policy_created

{
   "chan_id": <string>,
   "local_base_fee": <integer>,
   "local_fee_rate": <float>,
   "remote_base_fee": <integer>,
   "remote_fee_rate": <float>
}

What's next?

Start your Encrypted Energy journey now by creating a free account to get started.