summaryrefslogtreecommitdiff
path: root/57/735d73cd91deae0bae8354cb4215754b80e83a
blob: 91cc71acfc6ecf995b4b8a69de82089ab9e50083 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
Return-Path: <slashene@gmail.com>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 2DACD89E
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed, 20 Dec 2017 06:28:31 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from mail-wm0-f48.google.com (mail-wm0-f48.google.com [74.125.82.48])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id B27D187
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed, 20 Dec 2017 06:28:29 +0000 (UTC)
Received: by mail-wm0-f48.google.com with SMTP id f9so7661056wmh.0
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Tue, 19 Dec 2017 22:28:29 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
	h=mime-version:sender:from:date:message-id:subject:to;
	bh=C77abGYzhRvkpsxRnSuWhN7XwTnRp8UxNMt7i7hMHdM=;
	b=WC9nA/pOU4KcyXdteX3CxTjJMAkUVuwxEeotHIMh/xO7gk/CTWU9TXZAY3LPTvMpYr
	aXXS65r2Wh0IUUSMzvBl7emYzBogMEvDmj1B9hcJ+V2+GcqhHVVy1LmvrQTcBUndkHQG
	CHRH9u0ZSqq+DWxz1DbFrZUF8XiDyaGVEEGoh4KisvGvGGJOKi4JjBlzQeyte4tIOlMm
	iMLlLn7DAmcRMZUpK+qm0Mf7xsOLmEXZ3MkvJWxdIjnwRkT663mttaUrBElwNaMi8Zev
	GhB6npbL35qi12VvNj8xK4iSlbs78Cagw4lrnvuLwy4KgQJO9ZqDOlQs24T43EOSSMAV
	bDAw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20161025;
	h=x-gm-message-state:mime-version:sender:from:date:message-id:subject
	:to; bh=C77abGYzhRvkpsxRnSuWhN7XwTnRp8UxNMt7i7hMHdM=;
	b=oVyZtQzY26kIReNb5y8fatsJ9A1uu/0dqJFL7DjMOFdlD73icWnaZgjZbnpGSF43Jb
	+3yxyMYv2Zpk/FsVsxnWmm+KqyLh6BcX8+sBctjH5mvxrpL1dzdyMgBCod1eA6u9t3S2
	M65R2MaIQFzvreo0MHcNHAGvmbXt70Byu1Ee4k4a1FZutfEIJycIOg7C5DPj1/lY2Wa6
	kg7AKjq1IIdlnB/UoEPR0NJJrvE9oO87G3OvzL6fkYC0JljD9C/eKViXp5cqoZ4FvOPH
	fJlyj/JCPwS7YVhp6e3QxdU02Ollot231mSwdBRgQvFaaX1s47dkVFZJL83zktiqGhcd
	CS8w==
X-Gm-Message-State: AKGB3mIuF3NkmkBete58OkoNHOVxJTwlxtJDdQOmhVUiAuTfaYRcO//S
	pNxfLgrCxjpHIJk9ASwJidQaodY1bN6AI4Ir3tqG2hIo
X-Google-Smtp-Source: ACJfBovS7+1StZyrzgptSUnvTjcKrJ5K0k5LdOHYbYyWYNwCl7TKSjvI5r0W/+0SmLojUFolIvr6EtXmeqBMJ1iZWt4=
X-Received: by 10.80.182.217 with SMTP id f25mr4035416ede.104.1513751307965;
	Tue, 19 Dec 2017 22:28:27 -0800 (PST)
MIME-Version: 1.0
Sender: slashene@gmail.com
Received: by 10.80.172.79 with HTTP; Tue, 19 Dec 2017 22:28:07 -0800 (PST)
From: Nicolas Dorier <nicolas.dorier@gmail.com>
Date: Wed, 20 Dec 2017 15:28:07 +0900
X-Google-Sender-Auth: WNyAxkAoOwfuY7oDBbcYq3mVq4U
Message-ID: <CA+1nnr=-6UkJT=TWjDHhZtXsic8p0fzQ=Yk1tSqkhL+NuvqCQw@mail.gmail.com>
To: Bitcoin Dev <bitcoin-dev@lists.linuxfoundation.org>
Content-Type: multipart/alternative; boundary="f403045c0c6efd59ba0560bfb068"
X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,
	DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, HTML_MESSAGE,
	RCVD_IN_DNSWL_NONE, 
	TVD_PH_BODY_ACCOUNTS_PRE autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
	smtp1.linux-foundation.org
Subject: [bitcoin-dev] BIP Proposal: Crypto Open Exchange Protocol (COX)
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Bitcoin Protocol Discussion <bitcoin-dev.lists.linuxfoundation.org>
List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Dec 2017 06:28:31 -0000

--f403045c0c6efd59ba0560bfb068
Content-Type: text/plain; charset="UTF-8"

Hi everyone,

As some of you know, I am working on a complete open source replacement of
Bitpay for allowing merchant to accept cryptocurrency payments while having
a way to sell automatically.

A crucial, missing part, is fiat conversion. And I figured out a simple
protocol that exchanges (or adapters) can implement to allow any merchant
to cash out BTC in fiat while giving them the freedom to choose their own
payment processor solution.

This also have positive impact on scalability: Before, a merchant would
receive the bitcoin from the customer then would send to the exchange,
resulting in two transactions.
With this specification, it would be one transaction.

Special thanks to anditto and kallewoof for reviewing. I am waiting for
your feedback:

Github link:
https://github.com/NicolasDorier/bips/blob/master/bip-xxx.mediawiki

<pre>
  BIP: XXX
  Layer: Applications
  Title: Crypto Open Exchange Protocol (COX)
  Author: Nicolas Dorier <nicolas.dorier@gmail.com>
  Comments-Summary: No comments yet.
  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-XXX
  Status: Draft
  Type: Standards Track
  Created: 2017-12-20
  License: BSD-3-Clause
           CC0-1.0
</pre>

==Abstract==

A simple protocol for decoupling payment processor solutions from exchanges.

==Motivation==

Cryptocurrency merchant adoption is mainly driven by availability, ease of
use and means of acceptance.
We call such solutions `Payment Processors`.

Until now, payment processing solutions fall into one of the two following
categories:

# Self-hosted with the customer paying in cryptocurrency and the merchant
receiving it directly.
# Centralized, coupled with an exchange feature, with the customer paying
in cryptocurrency to the merchant, and receiving fiat or cryptocurrency on
his exchange account.

The self-hosted solution has two issues:

# The merchant becomes vulnerable to the wild volatility of
cryptocurrencies.
# It is wasteful of blockchain space, if the merchant does not pay
suppliers in crypto, as they need a second transaction to change to his
exchange,

The centralized solution has two issues:

# It locks-in the merchant to a particular payment processor whose
intentions might not be aligned (e.g. Bitpay who tried to redefine Bitcoin
as being a different chain, without merchant approval)
# It has to deal with local regulations (e.g. Bitpay does not provide fiat
CAD to canadian merchants)

The goal of this BIP is to specify a simple protocol which makes possible
decoupling of payment processors from exchanges.

We believe this BIP will gather a lot of interest among local exchanges
which do not have the resources to develop their own payment solutions.

Their customers can decide which payment processor solution they prefer,
while the exchanges give them a way to protect against cryptocurrency
volatility.

==Summary==

The merchant log in to its exchange website, go into "Address sources"
section of it, an click on "Create a new address source".

The address source creation wizard asks him questions about what to do when
crypto currency is sent to this the address source. (Cryptocurrency, Market
sell order, limit order of past day average etc...)

The merchant receives an "address source URI" which they can input inside
the payment processor.

An exchange compatible with the Crypto Open Exchange Protocol would reply
to any HTTP POST request to this  "address source URI" returning the
following information (more details in the Specification part)

# A deposit address for accepting a payment
# The current rate
# Optional: If the exchange is willing to take the risk of rate
fluctuation, until when this rate is guaranteed and under which conditions.

<img src="bip-xxx/overview.png"></img>

===Interaction===

* Manny (the "merchant") wants to accept Bitcoin payments on his e-commerce
website.
* Manny chooses the payment processor "PROCCO" which has a powerful plugin
for his e-commerce website.
* Manny is based in Canada and already has an account on the exchange
"MYCOIN" which supports the Crypto Open Exchange Protocol.
* Manny connects to the exchange website, and creates a new address source.
* In the configuration screen of the address source, for each payment sent
to this address source, Manny decides to keep 30% in Bitcoin and place a
market sell order for the remaining 70% of the amount.
* "MYCOIN" creates the address source, and gives the "address source URI"
to the merchant. (e.g. https://example.com/addresssources/abd29ddn92)
* Manny copies the address source URI and goes inside "PROCCO" settings,
and configures his store to use this address source URI.

Now a customer, Carol, wants to order a brand new phone for 0.01 BTC on
Manny's store and decides to pay in Bitcoin.

* The E-Commerce website plugin requests the creation of an invoice from
PROCCO.
* PROCCO queries the "address source URI" and retrieves the rate, the
expiration of this rate and conditions.
* PROCCO can now show the Bitcoin Payment Checkout page.
* Carla pays.
* PROCCO marks the payment as paid and redirects to the e-commerce website.
* MYCOIN, under its own policy (typically after 6 confirmations), credits
Manny's account of 0.01 BTC and simultaneously creates a market sell order
of 0.007 BTC on behalf of Manny.

==Specification==

The payment processor sends a POST request to the "address source URI", the
response from a Crypto Open Exchange Protocol exchange would be:

If the exchange does not guarantee the rate:

    {
        "depositAddress" : "13....abd",
        "currencyCode" : "CAD",
        "cryptoCurrencyCode" : "BTC",
        "rate" : "15600",
        # When the merchant account get credited on the exchange
        "requiredConfirmations" : blockcount
    }


If the exchange guarantee the rate:

    {
        "depositAddress" : "13....abd",
        "currencyCode" : "CAD",
        "cryptoCurrencyCode" : "BTC",
        "rate" : "15600",
        "requiredConfirmations" : blockcount
        "conditions" :
        {
            # When the transaction should be seen on the blockchain to
guarantee the rate
            "receivedBefore" : timestamp,
            # When the transaction should be confirmed on the blockchain to
guarantee the rate
            "confirmedBefore" : timestamp
        }
    }


The payment processor is responsible for giving feedback to the customer if
the fees of the received transaction are not enough to guarantee the rate.

==Note on adoption==

While local exchanges have incentives to implement this simple protocol, it
is not strictly needed.

An alternative is to develop an adapter server which expose Crypto Open
Exchange Protocol endpoint and connect to underlying exchange's API.

The only downside is that the rate can't be guaranteed.

==Copyright==

This document is dual licensed as BSD 3-clause, and Creative Commons CC0
1.0 Universal.


Nicolas,

--f403045c0c6efd59ba0560bfb068
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi everyone,<div><br></div><div>As some of you know, I am =
working on a complete open source replacement of Bitpay for allowing mercha=
nt to accept cryptocurrency payments while having a way to sell automatical=
ly.</div><div><br></div><div>A crucial, missing part, is fiat conversion. A=
nd I figured out a simple protocol that exchanges (or adapters) can impleme=
nt to allow any merchant to cash out BTC in fiat while giving them the free=
dom to choose their own payment processor solution.</div><div><br></div><di=
v>This also have positive impact on scalability: Before, a merchant would r=
eceive the bitcoin from the customer then would send to the exchange, resul=
ting in two transactions.</div><div>With this specification, it would be on=
e transaction.</div><div><br></div><div>Special thanks to anditto and kalle=
woof for reviewing. I am waiting for your feedback:</div><div><br></div><di=
v>Github link:=C2=A0<a href=3D"https://github.com/NicolasDorier/bips/blob/m=
aster/bip-xxx.mediawiki">https://github.com/NicolasDorier/bips/blob/master/=
bip-xxx.mediawiki</a></div><div><br></div><div><div>&lt;pre&gt;</div><div>=
=C2=A0 BIP: XXX</div><div>=C2=A0 Layer: Applications</div><div>=C2=A0 Title=
: Crypto Open Exchange Protocol (COX)</div><div>=C2=A0 Author: Nicolas Dori=
er &lt;<a href=3D"mailto:nicolas.dorier@gmail.com">nicolas.dorier@gmail.com=
</a>&gt;</div><div>=C2=A0 Comments-Summary: No comments yet.</div><div>=C2=
=A0 Comments-URI: <a href=3D"https://github.com/bitcoin/bips/wiki/Comments:=
BIP-XXX">https://github.com/bitcoin/bips/wiki/Comments:BIP-XXX</a></div><di=
v>=C2=A0 Status: Draft</div><div>=C2=A0 Type: Standards Track</div><div>=C2=
=A0 Created: 2017-12-20</div><div>=C2=A0 License: BSD-3-Clause</div><div>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0CC0-1.0</div><div>&lt;/pre&gt;</di=
v><div><br></div><div>=3D=3DAbstract=3D=3D</div><div><br></div><div>A simpl=
e protocol for decoupling payment processor solutions from exchanges.</div>=
<div><br></div><div>=3D=3DMotivation=3D=3D</div><div><br></div><div>Cryptoc=
urrency merchant adoption is mainly driven by availability, ease of use and=
 means of acceptance.</div><div>We call such solutions `Payment Processors`=
.</div><div><br></div><div>Until now, payment processing solutions fall int=
o one of the two following categories:</div><div><br></div><div># Self-host=
ed with the customer paying in cryptocurrency and the merchant receiving it=
 directly.</div><div># Centralized, coupled with an exchange feature, with =
the customer paying in cryptocurrency to the merchant, and receiving fiat o=
r cryptocurrency on his exchange account.</div><div><br></div><div>The self=
-hosted solution has two issues:</div><div><br></div><div># The merchant be=
comes vulnerable to the wild volatility of cryptocurrencies.</div><div># It=
 is wasteful of blockchain space, if the merchant does not pay suppliers in=
 crypto, as they need a second transaction to change to his exchange,</div>=
<div><br></div><div>The centralized solution has two issues:</div><div><br>=
</div><div># It locks-in the merchant to a particular payment processor who=
se intentions might not be aligned (e.g. Bitpay who tried to redefine Bitco=
in as being a different chain, without merchant approval)</div><div># It ha=
s to deal with local regulations (e.g. Bitpay does not provide fiat CAD to =
canadian merchants)</div><div><br></div><div>The goal of this BIP is to spe=
cify a simple protocol which makes possible decoupling of payment processor=
s from exchanges.</div><div><br></div><div>We believe this BIP will gather =
a lot of interest among local exchanges which do not have the resources to =
develop their own payment solutions.</div><div><br></div><div>Their custome=
rs can decide which payment processor solution they prefer, while the excha=
nges give them a way to protect against cryptocurrency volatility.</div><di=
v><br></div><div>=3D=3DSummary=3D=3D</div><div><br></div><div>The merchant =
log in to its exchange website, go into &quot;Address sources&quot; section=
 of it, an click on &quot;Create a new address source&quot;.</div><div><br>=
</div><div>The address source creation wizard asks him questions about what=
 to do when crypto currency is sent to this the address source. (Cryptocurr=
ency, Market sell order, limit order of past day average etc...)</div><div>=
<br></div><div>The merchant receives an &quot;address source URI&quot; whic=
h they can input inside the payment processor.</div><div><br></div><div>An =
exchange compatible with the Crypto Open Exchange Protocol would reply to a=
ny HTTP POST request to this=C2=A0 &quot;address source URI&quot; returning=
 the following information (more details in the Specification part)</div><d=
iv><br></div><div># A deposit address for accepting a payment</div><div># T=
he current rate</div><div># Optional: If the exchange is willing to take th=
e risk of rate fluctuation, until when this rate is guaranteed and under wh=
ich conditions.</div><div><br></div><div>&lt;img src=3D&quot;bip-xxx/overvi=
ew.png&quot;&gt;&lt;/img&gt;</div><div><br></div><div>=3D=3D=3DInteraction=
=3D=3D=3D</div><div><br></div><div>* Manny (the &quot;merchant&quot;) wants=
 to accept Bitcoin payments on his e-commerce website.</div><div>* Manny ch=
ooses the payment processor &quot;PROCCO&quot; which has a powerful plugin =
for his e-commerce website.</div><div>* Manny is based in Canada and alread=
y has an account on the exchange &quot;MYCOIN&quot; which supports the Cryp=
to Open Exchange Protocol.</div><div>* Manny connects to the exchange websi=
te, and creates a new address source.</div><div>* In the configuration scre=
en of the address source, for each payment sent to this address source, Man=
ny decides to keep 30% in Bitcoin and place a market sell order for the rem=
aining 70% of the amount.</div><div>* &quot;MYCOIN&quot; creates the addres=
s source, and gives the &quot;address source URI&quot; to the merchant. (e.=
g. <a href=3D"https://example.com/addresssources/abd29ddn92">https://exampl=
e.com/addresssources/abd29ddn92</a>)</div><div>* Manny copies the address s=
ource URI and goes inside &quot;PROCCO&quot; settings, and configures his s=
tore to use this address source URI.</div><div><br></div><div>Now a custome=
r, Carol, wants to order a brand new phone for 0.01 BTC on Manny&#39;s stor=
e and decides to pay in Bitcoin.</div><div><br></div><div>* The E-Commerce =
website plugin requests the creation of an invoice from PROCCO.=C2=A0</div>=
<div>* PROCCO queries the &quot;address source URI&quot; and retrieves the =
rate, the expiration of this rate and conditions.</div><div>* PROCCO can no=
w show the Bitcoin Payment Checkout page.</div><div>* Carla pays.</div><div=
>* PROCCO marks the payment as paid and redirects to the e-commerce website=
.</div><div>* MYCOIN, under its own policy (typically after 6 confirmations=
), credits Manny&#39;s account of 0.01 BTC and simultaneously creates a mar=
ket sell order of 0.007 BTC on behalf of Manny.</div><div><br></div><div>=
=3D=3DSpecification=3D=3D</div><div><br></div><div>The payment processor se=
nds a POST request to the &quot;address source URI&quot;, the response from=
 a Crypto Open Exchange Protocol exchange would be:</div><div><br></div><di=
v>If the exchange does not guarantee the rate:</div><div><br></div><div>=C2=
=A0 =C2=A0 {</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;depositAddress&quo=
t; : &quot;13....abd&quot;,</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;cur=
rencyCode&quot; : &quot;CAD&quot;,</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 &q=
uot;cryptoCurrencyCode&quot; : &quot;BTC&quot;,</div><div>=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 &quot;rate&quot; : &quot;15600&quot;,</div><div>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 # When the merchant account get credited on the exchange</div=
><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;requiredConfirmations&quot; : block=
count</div><div>=C2=A0 =C2=A0 }</div><div><br></div><div><br></div><div>If =
the exchange guarantee the rate:</div><div><br></div><div>=C2=A0 =C2=A0 {</=
div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;depositAddress&quot; : &quot;13.=
...abd&quot;,</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;currencyCode&quot=
; : &quot;CAD&quot;,</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;cryptoCurr=
encyCode&quot; : &quot;BTC&quot;,</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 &qu=
ot;rate&quot; : &quot;15600&quot;,</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 &q=
uot;requiredConfirmations&quot; : blockcount</div><div>=C2=A0 =C2=A0 =C2=A0=
 =C2=A0 &quot;conditions&quot; :=C2=A0</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 {</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 # When the transa=
ction should be seen on the blockchain to guarantee the rate</div><div>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;receivedBefore&quot; : timesta=
mp,</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 # When the transact=
ion should be confirmed on the blockchain to guarantee the rate</div><div>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;confirmedBefore&quot; : tim=
estamp</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 }</div><div>=C2=A0 =C2=A0 }</d=
iv><div><br></div><div><br></div><div>The payment processor is responsible =
for giving feedback to the customer if the fees of the received transaction=
 are not enough to guarantee the rate.</div><div><br></div><div>=3D=3DNote =
on adoption=3D=3D</div><div><br></div><div>While local exchanges have incen=
tives to implement this simple protocol, it is not strictly needed.</div><d=
iv><br></div><div>An alternative is to develop an adapter server which expo=
se Crypto Open Exchange Protocol endpoint and connect to underlying exchang=
e&#39;s API.</div><div><br></div><div>The only downside is that the rate ca=
n&#39;t be guaranteed.</div><div><br></div><div>=3D=3DCopyright=3D=3D</div>=
<div><br></div><div>This document is dual licensed as BSD 3-clause, and Cre=
ative Commons CC0 1.0 Universal.</div></div><div><div><br></div></div><div>=
<br></div><div>Nicolas,</div></div>

--f403045c0c6efd59ba0560bfb068--