{% extends "base.html" %} {% block title %} {{ block.super }} - Channel Card{% endblock %} {% block content %} {% load humanize %} {% if channel %}

{% if channel.alias != "" %}{{ channel.alias }} | {{ channel.remote_pubkey }}{% else %}{{ channel.remote_pubkey }}{% endif %} {{ chan_id }} {{ channel.short_chan_id }}

{% if peer_info %}📍{{ peer_info.address }} | Channel Updates: {{ channel.num_updates|intcomma }} | {% if not channel.is_open %}❌ Closed:{% elif channel.is_active %}Uptime:{% else %}Downtime:{% endif %} {{ channel.last_update|naturaltime|slice:":-4" }} since {{ channel.last_update }}{% endif %} {%if channel.private %}🕶️{%else%}🌐{%endif%}
⛓️ Channel Point: {{ channel.funding_txid }}:{{ channel.output_index }} | Opened In: {{ channel.open_block|intcomma }} | Opener: {% if channel.initiator == True %}Local{% else %}Remote{% endif %}

{{channel.local_balance|intcomma}} {{ channel.out_percent }}%
{{channel.remote_balance|intcomma}} {{ channel.in_percent }}%

Routed Rebalanced Profitability
Period Out In Avg Out Avg In Out In Success Revenue Cost Profit Assisted Revenue APY iAPY CV
1-Day {{ channel.amt_routed_out_1day|intcomma }} {{ channel.routed_out_1day|intcomma }} {{ channel.amt_routed_in_1day|intcomma }} {{ channel.routed_in_1day|intcomma }} {{ channel.average_out_1day|intcomma }} {{ channel.average_in_1day|intcomma }} {{ channel.amt_rebal_out_1day|intcomma }} {{ channel.rebal_out_1day|intcomma }} {{ channel.amt_rebal_in_1day|intcomma }} {{ channel.rebal_in_1day|intcomma }} {{ channel.success_1day }}/{{ channel.attempts_1day }} {{ channel.success_rate_1day }}% {{ channel.revenue_1day|intcomma }} {{ channel.costs_1day|intcomma }} {{ channel.profits_1day|intcomma }} [{{ channel.profits_vol_1day }}] {{ channel.revenue_assist_1day|intcomma }} {{ channel.apy_1day }}% {{ channel.assisted_apy_1day }}% {{ channel.cv_1day }}%
7-Day {{ channel.amt_routed_out_7day|intcomma }} {{ channel.routed_out_7day|intcomma }} {{ channel.amt_routed_in_7day|intcomma }} {{ channel.routed_in_7day|intcomma }} {{ channel.average_out_7day|intcomma }} {{ channel.average_in_7day|intcomma }} {{ channel.amt_rebal_out_7day|intcomma }} {{ channel.rebal_out_7day|intcomma }} {{ channel.amt_rebal_in_7day|intcomma }} {{ channel.rebal_in_7day|intcomma }} {{ channel.success_7day }}/{{ channel.attempts_7day }} {{ channel.success_rate_7day }}% {{ channel.revenue_7day|intcomma }} {{ channel.costs_7day|intcomma }} {{ channel.profits_7day|intcomma }} [{{ channel.profits_vol_7day }}] {{ channel.revenue_assist_7day|intcomma }} {{ channel.apy_7day }}% {{ channel.assisted_apy_7day }}% {{ channel.cv_7day }}%
30-Day {{ channel.amt_routed_out_30day|intcomma }} {{ channel.routed_out_30day|intcomma }} {{ channel.amt_routed_in_30day|intcomma }} {{ channel.routed_in_30day|intcomma }} {{ channel.average_out_30day|intcomma }} {{ channel.average_in_30day|intcomma }} {{ channel.amt_rebal_out_30day|intcomma }} {{ channel.rebal_out_30day|intcomma }} {{ channel.amt_rebal_in_30day|intcomma }} {{ channel.rebal_in_30day|intcomma }} {{ channel.success_30day }}/{{ channel.attempts_30day }} {{ channel.success_rate_30day }}% {{ channel.revenue_30day|intcomma }} {{ channel.costs_30day|intcomma }} {{ channel.profits_30day|intcomma }} [{{ channel.profits_vol_30day }}] {{ channel.revenue_assist_30day|intcomma }} {{ channel.apy_30day }}% {{ channel.assisted_apy_30day }}% {{ channel.cv_30day }}%
Lifetime {{ channel.amt_routed_out|intcomma }} {{ channel.routed_out|intcomma }} {{ channel.amt_routed_in|intcomma }} {{ channel.routed_in|intcomma }} {{ channel.average_out|intcomma }} {{ channel.average_in|intcomma }} {{ channel.amt_rebal_out|intcomma }} {{ channel.rebal_out|intcomma }} {{ channel.amt_rebal_in|intcomma }} {{ channel.rebal_in|intcomma }} {{ channel.success }}/{{ channel.attempts }} {{ channel.success_rate }}% {{ channel.revenue|intcomma }} {{ channel.costs|intcomma }} {{ channel.profits|intcomma }} [{{ channel.profits_vol }}] {{ channel.revenue_assist|intcomma }} {{ channel.apy }}% {{ channel.assisted_apy }}% {{ channel.cv }}%

Channel Settings

AF Updated 7Day Flow Out Rate Rebal Rate Assisted Ratio Adjustment Suggested Rate Channel State oRate oBase iRate iBase Target Amt Max Cost % oTarget% iTarget% AR Rebal In? Active
{% csrf_token %}
{{ channel.fees_updated|naturaltime }} {% if channel.net_routed_7day > 0 %}OUT{% elif channel.net_routed_7day < 0 %}IN{% else %}---{% endif %}{% if channel.net_routed_7day != 0 %} | {{ channel.net_routed_7day }}{% endif %} {{ channel.out_rate }} {{ channel.rebal_ppm }} {{ channel.assisted_ratio }} {{ channel.adjustment }} {{ channel.new_rate|intcomma }} {% if channel.is_active == True %}
{% csrf_token %}
{% else %} --- {% endif %}
{% csrf_token %}
{% csrf_token %}
{{ channel.remote_fee_rate|intcomma }} {{ channel.remote_base_fee|intcomma }}
{% csrf_token %}
{% csrf_token %}
{% csrf_token %}
{% csrf_token %}
{% csrf_token %}
{% if channel.inbound_can >= 1 and channel.fee_check < 100 and channel.auto_rebalance == True %}True{% else %}False{% endif %} {{ channel.steps }} True{% else %}style="background-color: rgba(248,81,73,0.15);">False{% endif %}
{% if outgoing_htlcs %}

Outgoing HTLCs

{% for htlc in outgoing_htlcs %} {% endfor %}
Forwarding Channel Forwarding Alias Amount Expiration Height Hash Lock
{% if htlc.forwarding_channel == '0' %}Self{% else %}{{ htlc.forwarding_channel }}{% endif %} {% if htlc.forwarding_alias == '' %}---{% else %}{{ htlc.forwarding_alias }}{% endif %} {{ htlc.amount|intcomma }} {{ htlc.expiration_height|intcomma }} {{ htlc.hash_lock }}
{% endif %} {% if incoming_htlcs %}

Incoming HTLCs

{% for htlc in incoming_htlcs %} {% endfor %}
Forwarding Channel Forwarding Alias Amount Expiration Height Hash Lock
{% if htlc.forwarding_channel == '0' %}Self{% else %}{{ htlc.forwarding_channel }}{% endif %} {% if htlc.forwarding_alias == '' %}---{% else %}{{ htlc.forwarding_alias }}{% endif %} {{ htlc.amount|intcomma }} {{ htlc.expiration_height|intcomma }} {{ htlc.hash_lock }}
{% endif %} {% if autofees %}

30 Days Our Fees Logs

{% for log in autofees %} {% endfor %}
Timestamp Channel ID Peer Alias Setting Old Value New Value Change
{{ log.timestamp|naturaltime }} {{ log.chan_id }} {% if log.peer_alias == '' %}{{ channel.remote_pubkey|slice:":12" }}{% else %}{{ log.peer_alias }}{% endif %} {{ log.setting }} {{ log.old_value }} log.old_value %}style="background-color: rgba(46,160,67,0.15)"{% else %}style="background-color: rgba(248,81,73,0.15);"{% endif %}>{{ log.new_value }} log.old_value %}style="background-color: rgba(46,160,67,0.15)"{% else %}style="background-color: rgba(248,81,73,0.15);"{% endif %}>{{ log.change }}%
{% endif %} {% if forwards %}

Last 5 Payments Routed

{% for forward in forwards %} {% endfor %}
Timestamp Amount In Amount Out Channel In Alias Channel Out Alias Channel In Id Channel Out Id Fees Earned PPM Earned
{{ forward.forward_date|naturaltime }} {{ forward.amt_in|intcomma }} {{ forward.amt_out|intcomma }} {% if forward.chan_in_alias == '' %}---{% else %}{{ forward.chan_in_alias }}{% endif %} {% if forward.chan_out_alias == '' %}---{% else %}{{ forward.chan_out_alias }}{% endif %} {{ forward.chan_id_in }} {{ forward.chan_id_out }} {{ forward.fee|intcomma }} {{ forward.ppm|intcomma }}
{% endif %} {% include 'rebalances_table.html' with count=5 last_hop_pubkey=channel.remote_pubkey title='Rebalance Requests' %} {% if payments %}

Last 5 Payments Sent

{% for payment in payments %} {% endfor %}
Timestamp Hash Value Fee Paid PPM Paid Status Chan Out Alias Chan Out ID Route Keysend
{{ payment.creation_date|naturaltime }} {{ payment.payment_hash }} {{ payment.value|add:"0"|intcomma }} {{ payment.fee|intcomma }} {{ payment.ppm|intcomma }} {% if payment.status == 1 %}In-Flight{% elif payment.status == 2 %}Succeeded{% elif payment.status == 3 %}Failed{% else %}{{ payment.status }}{% endif %} {% if payment.status == 2 %}{% if payment.chan_out_alias == '' %}---{% else %}{{ payment.chan_out_alias }}{% endif %}{% else %}---{% endif %} {% if payment.status == 2 %}{{ payment.chan_out }}{% else %}---{% endif %} {% if payment.status == 2 %}Open{% else %}---{% endif %} {% if payment.keysend_preimage != None %}Yes{% else %}No{% endif %}
{% endif %} {% if invoices %}

Last 5 Payments Received

{% for invoice in invoices %} {% endfor %}
Created Settled Payment Hash Value Amount Paid State Channel In Alias Channel In Keysend
{{ invoice.creation_date|naturaltime }} {% if invoice.state == 1 %}{{ invoice.settle_date|naturaltime }}{% else %}---{% endif %} {{ invoice.r_hash }} {{ invoice.value|add:"0"|intcomma }} {% if invoice.state == 1 %}{{ invoice.amt_paid|intcomma }}{% else %}---{% endif %} {% if invoice.state == 0 %}Open{% elif invoice.state == 1 %}Settled{% elif invoice.state == 2 %}Canceled{% else %}{{ invoice.state }}{% endif %} {% if invoice.state == 1 %}{% if invoice.chan_in_alias == '' %}---{% else %}{{ invoice.chan_in_alias }}{% endif %}{% else %}---{% endif %} {% if invoice.state == 1 and invoice.chan_in != None %}{{ invoice.chan_in }}{% else %}---{% endif %} {% if invoice.keysend_preimage != None %}Yes{% else %}No{% endif %}
{% endif %} {% if failed_htlcs %}

Last 5 Failed HTLCs

{% for failed_htlc in failed_htlcs %} {% endfor %}
Timestamp Chan In ID Chan Out ID Chan In Alias Chan Out Alias Forward Amount Actual Outbound Potential Fee HTLC Failure Failure Detail
{{ failed_htlc.timestamp|naturaltime }} {{ failed_htlc.chan_id_in }} {{ failed_htlc.chan_id_out }} {% if failed_htlc.chan_in_alias == '' %}---{% else %}{{ failed_htlc.chan_in_alias }}{% endif %} {% if failed_htlc.chan_out_alias == '' %}---{% else %}{{ failed_htlc.chan_out_alias }}{% endif %} {{ failed_htlc.amount|intcomma }} {{ failed_htlc.chan_out_liq|intcomma }} {{ failed_htlc.chan_out_pending|intcomma }} {{ failed_htlc.missed_fee|intcomma }} {% if failed_htlc.wire_failure == 11 %}Amount Below Minimum{% elif failed_htlc.wire_failure == 12 %}Fee Insufficient{% elif failed_htlc.wire_failure == 15 %}Temporary Channel Failure{% elif failed_htlc.wire_failure == 18 %}Unknown Next Peer{% elif failed_htlc.wire_failure == 22 %}Expiry Too Far{% else %}{{ failed_htlc.wire_failure }}{% endif %} {% if failed_htlc.failure_detail == 1 %}---{% elif failed_htlc.failure_detail == 5 %}HTLC Exceeds Max{% elif failed_htlc.failure_detail == 6 %}Insufficient Balance{% elif failed_htlc.failure_detail == 13 %}Invoice Not Open{% elif failed_htlc.failure_detail == 20 %}Invalid Keysend{% elif failed_htlc.failure_detail == 22 %}Circular Route{% else %}{{ failed_htlc.failure_detail }}{% endif %}

Failed Due To Insufficient Balance: 1-Day: {{ channel.failed_out_1day }} 7-Day: {{ channel.failed_out_7day }} 30-Day: {{ channel.failed_out_30day }} Lifetime: {{ channel.failed_out }}

{% endif %} {% if peer_events %}

Last 10 Peer Log Events

{% for log in peer_events %} {% endfor %}
Timestamp Channel ID Peer Alias Setting Old Value New Value Change Channel Liquidity
{{ log.timestamp|naturaltime }} {{ log.chan_id }} {% if log.peer_alias == '' %}{{ channel.remote_pubkey|slice:":12" }}{% else %}{{ log.peer_alias }}{% endif %} {{ log.event }} {% if log.old_value == "" %}---{% elif log.event == "Connection" %}{% if log.old_value == 1 %}Online{% else %}Offline{% endif %}{% elif log.event == "Disabled" %}{% if log.old_value == 1 %}True{% else %}False{% endif %}{% else %}{{ log.old_value|intcomma }}{% endif %} log.old_value and log.event != "Disabled" %}style="background-color: rgba(46,160,67,0.15)"{% else %}style="background-color: rgba(248,81,73,0.15);"{% endif %}>{% if log.event == "Connection" %}{% if log.new_value == 1 %}Online{% else %}Offline{% endif %}{% elif log.event == "Disabled" %}{% if log.new_value == 1 %}True{% else %}False{% endif %}{% else %}{{ log.new_value|intcomma }}{% endif %} ---{% elif log.new_value > log.old_value %}style="background-color: rgba(46,160,67,0.15)">{{ log.change }}%{% else %}style="background-color: rgba(248,81,73,0.15);">{{ log.change|intcomma }}%{% endif %} {{ log.out_percent }}% {{ log.in_percent }}%
{% endif %} {% endif %} {% if not channel %}

No data found for this channel!

{% endif %} {% endblock %}