<p></p>
<blockquote>
<p><em>This is a Bisq Network project. Please familiarize yourself with the <a href="https://bisq.wiki/Project_management" rel="nofollow">project management process</a>.</em></p>
</blockquote>
<h2>Description</h2>
<p>This project will remove the need for Bisq network to trust BitcoinAverage as a data oracle and provide fiat and altcoin prices, by implementing our own weighted average price index for fiat and altcoin prices calculated from querying 10 or more Bitcoin Exchange APIs directly.</p>
<h2>Rationale</h2>
<p>Currently the Bisq Pricenode Operators all subscribe to expensive Bitcoin Average API subscription plans, which is a large recurring expense for the Ops team budget. It's a no-brainer to do this project financially, since we will no longer have to pay these recurring monthly expenses for API subscriptions, but much more importantly in terms of our goals to improve reliability and censorship-resistance, this project will remove a very centralized TTP and CPOF for Bisq by decentralizing the data sources. If BitcoinAverage were to suddenly ban Bisq, we would be in trouble.</p>
<h2>Criteria for delivery</h2>
<p>After we have upgraded all pricenodes to the new code, and begin the phase-out of Bitcoin Avergage, we can consider this project to be delivered.</p>
<h2>Measures of success</h2>
<p>After we have phased-out Bitcoin Average completely, and Bisq is running stable on the new Pricenode code, we can consider this project to be successful.</p>
<h2>Risks</h2>
<p>The new code could crash our Pricenodes.<br>
The new code could calculate prices incorrectly.<br>
The pricenodes might disagree on the price for a certain fiat or crypto asset, causing network issues.<br>
More risks probably exist which we cannot know.</p>
<h2>Tasks</h2>
<h3>Part 1: Implement basic providers</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Add 10+ basic providers, supporting all the fiat and altcoin prices that Bisq needs</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Add way to define and view provider weights (for the weighted average, per currency pair)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Fix / adjust client UI (About / credits + top right dropdown "data provided by BitcoinAverage)</li>
</ul>
<h3>Part 2: Testing</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> After we have a working setup with several providers + weighted average per currency pair, begin full testing</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Based on testing results, add new providers if necessary, and tweak average weights if necessary, etc.</li>
</ul>
<h3>Part 3: slowly phase out Bitcoin Average</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> TBD: decide full plan to slowly phase out and remove BitcoinAverage</li>
</ul>
<h3>Documentation</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Add a new page to the wiki, documenting how the prices are calculated )which exchange gets which weight, for which currency, etc.)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Linking to this documentation from the top-right price UI field or other places inside Bisq app</li>
</ul>
<h2>Estimates for budget allocation</h2>
<p>Dev: $3000<br>
Ops: $1000</p>
<h2>Notes</h2>
<h3>Which exchanges to query for which currencies?</h3>
<p>This is probably a good starting point:</p>
<pre><code>AUD="[BTCMARKETS, IndependentReserve, QUOINE]"
BRL="[MercadoBitcoin]"
CAD="[KRAKEN]"
CHF="[KRAKEN]"
CNY="[QUOINE]"
CZK="[Coinmate]"
EUR="[BINANCE, BITBAY, BITFINEX, BITSTAMP, CexIO, CoinbasePro, Coinmate, EXMO, KRAKEN, QUOINE]"
GBP="[BITBAY, BITFINEX, BITSTAMP, CexIO, CoinbasePro, KRAKEN]"
HKD="[QUOINE]"
IDR="[QUOINE]"
INR="[QUOINE]"
JPY="[BITFINEX, BITFLYER, KRAKEN, QUOINE]"
KRW="[COINONE]"
MYR="[LUNO]"
NGN="[BINANCE]"
NZD="[IndependentReserve]"
PHP="[QUOINE]"
PLN="[BITBAY, EXMO]"
RUB="[BINANCE, CexIO, EXMO]"
SGD="[QUOINE]"
TRY="[BINANCE, PARIBU]"
UAH="[EXMO]"
USD="[BITBAY, BITFINEX, BITSTAMP, CexIO, CoinbasePro, EXMO, IndependentReserve, KRAKEN, QUOINE]"
ZAR="[BINANCE, LUNO]"
</code></pre>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/bisq-network/projects/issues/35">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AJFFTNUIIK5EPRKZX4RQ3Z3RV4XDRANCNFSM4N2DBVHA">unsubscribe</a>.<img src="https://github.com/notifications/beacon/AJFFTNVFUV6YGQUN2N4TGS3RV4XDRA5CNFSM4N2DBVHKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4JPIPPEA.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/bisq-network/projects/issues/35",
"url": "https://github.com/bisq-network/projects/issues/35",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>