2020-Q1 Unofficial XRP ODL analysis/report

2020-Q1 Unofficial XRP ODL analysis/report

In this article, I will present some results of a basic analysis of presumed ODL (On Demand Liquidity – formerly branded as xRapid) traffic on the XRP ledger. The aim to give an idea of how much money is being transacted across borders and the trends so far since the system first started at the end of 2018.

Please be aware that the data presented in this article is derived from ledger analysis and is almost certainly inaccurate in some of the finer details. It is not possible to be 100% certain which transactions are genuine ODL traffic and which are not, however we can be reasonably confident that the results presented here are close to the correct figures and hopefully Ripple will release some data in their own Q1 report that confirms or negates the data here.

Side Note: I would have liked to post this article to coil.com, however, their editing tools and blog capabilities are so poor that it is essentially unusable for anyone who wishes to include larger images or tables of text &etc. When writing this article, the XRP community blog preview mode appeared to show images well, however it also appears to be very poor at displaying detailed plots. Please accept my apologies, I do not have access to any other blogging facilities and I chose the XRP Community blog because I wanted to try a coil post.

Methodology

The ledger traffic analysis is done as follows

  1. All payments made in XRP are extracted from the ledger and those < 1 xrp are discarded. To reduce the data analysis requirements, I throw away anything smaller than some tolerance, since tiny payments will not add much value to the total transaction amount and I am primarily interested in total volume.
  2. Payments are collected by a tuple of {source address, destination address, destination tag}. The assumption being that a given ODL corridor will use the same source exchange, destination exchange and customer account, making those 3 parameters invariant for traffic passing through a corridor/channel.
  3. Payments on a channel are examined to find the number of payments per day of the week, any candidate channel that has activity on less than 5 days a week (on average) is discarded. The assumption here is that once an ODL corridor goes live, it will generate traffic on a daily basis, possibly without activity on weekends if the system is not operational out of office hours.
  4. Channels that are active for less than 15 days are discarded. The assumption here is that once an ODL corridor goes live, it should have consistent traffic that lasts for a significant duration. If a burst of activity between two addresses using the same tag happens on a couple of days, it might be interesting, but it isn’t likely to be a remittance or payment corridor using ODL. An outcome of this assumption is that my scripts do not report candidate ODL corridors until they have been active for at least 2 weeks.
  5. Candidate corridors with less than 5 transactions per day (on average) are discarded. The assumption here is that an ODL corridor is probably going to be making quite a lot of transactions during a 24 hour period, if they are making a small number of transactions then it is assumed the total value is also small and can be ignored (this assumption would be invalid if a corridor was open but only sending a few large payments daily and the assumption should be checked from time to time to make sure it is not rejecting large transfers).
  6. Candidates with a mean transaction value less than the equivalent of $75 are discarded. The assumption here is that whilst individual remittances might be small, the use of ODL is unlikely to be made for every single individual payment and instead the accounts on each side of a corridor are likely to be ‘topped up’ periodically – so that smaller payments can be made to individual customers as needed. This assumption may need to be reassessed, but dropping a corridor with a small mean value does not significantly impact the total figures when other corridors are transferring millions of dollars worth of XRP per day.
  7. Any candidates that have source or destination accounts that are associated with casinos are discarded.
  8. Transactions occurring between known Ripple ODL enabled exchanges are kept (one could save some analysis time by throwing out all non ripple affiliated source/destination addresses at step 1, but I’m interested in looking at potential new corridors before they are announced).
  9. Note that valuations used to discard/keep candidate corridors is based on the mid price for a day (high+low)/2 and so valuations of daily, weekly, quarterly sums presented in this article are not exact since some payments in the morning may be made using one value and ones in the afternoon a completely different one. The analysis could be extended/improved to make use of finer grained price data to improve the correctness, but it will not significantly impact the findings. The collapse in prices towards the end of march 2020 (caused by market reactions to covid-19) produced a few days when swings in price were extreme and so a few days are likely to be inaccurate around this time. Note also that all prices in this report are based on XRP/USD from Bitstamp and will therefore carry some inaccuracy compared to prices on other exchanges.

The main reason for discarding some of the smaller candidates and casinos is that arbitrage bots operate between exchanges, and programmatic transfers between them appear essentially the same as ODL activity. Since the actual buy/sell events at exchanges is not being included in this analysis, these trading channels appear a candidates and pollute the results. The utility-scan ODL tracking website does look at individual trades on exchanges and in fact produces results that match very closely those presented here (a thorough comparison has not been conducted).

Corridor candidates

Before applying all steps of the algorithmic steps above – typical candidate corridors look as follows.
[note that I had some word wrapping issues when inserting the following tables, in preview mode they seem acceptable, but may not be very presentable. Please let me know if there is a better way of including them]

Exchange corridors (no casinos) (110) +---------------+---------------+------------+---------+----------+----------+----------+----------+--------+----------+-----------+
| source | destination | tag | trans | tr/day | active | unique | recent | bias | mean | std-dev |
|---------------+---------------+------------+---------+----------+----------+----------+----------+--------+----------+-----------|
| bitstamp | coins.ph | 255577 | 12256 | 105.7 | 175 | 116 | 15 | 1.8 | 396.8 | 697.2 |
| bitstamp | coins.ph | 255406 | 11872 | 91.3 | 177 | 130 | 15 | 1.7 | 9230.0 | 5548.7 |
| bitstamp | bitso | 25370527 | 21996 | 85.6 | 393 | 257 | 15 | 1.1 | 22122.3 | 12834.0 |
| btc markets | bitstamp | 58871619 | 8343 | 68.4 | 153 | 122 | 13 | 2.4 | 8579.7 | 5793.2 |
| btc markets | coins.ph | 255406 | 7399 | 64.3 | 153 | 115 | 13 | 3.1 | 5439.9 | 3341.4 |
| bitstamp | coins.ph | 160728 | 19936 | 53.3 | 387 | 374 | 15 | 2.0 | 64.6 | 109.1 |
| bitso | rModuA9GBa | 2769899242 | 6549 | 51.2 | 129 | 128 | 15 | 2.9 | 32105.6 | 14822.5 |
| rModuA9GBa | bitstamp | 36427656 | 6447 | 50.0 | 129 | 129 | 15 | 2.9 | 40907.1 | 60865.7 |
| rEVrb2XPMx | raQwCVAJVq | 903457449 | 929 | 42.2 | 34 | 22 | 15 | 3.9 | 285.1 | 688.3 |
| changenow | binance | 102021532 | 13972 | 35.4 | 409 | 395 | 15 | 1.1 | 1023.5 | 3825.8 |
| binance | bitstamp | 53466670 | 1277 | 30.4 | 42 | 42 | 15 | 3.2 | 26703.5 | 8124.6 |
| bithumb | raQwCVAJVq | 903457449 | 612 | 29.1 | 28 | 21 | 15 | 4.0 | 354.3 | 1622.6 |
| litebit | binance | 107749210 | 5443 | 26.7 | 226 | 204 | 15 | 1.5 | 471.8 | 1307.7 |
| bitstamp | bitso | 47175592 | 3293 | 22.6 | 225 | 146 | 7 | 2.5 | 20275.5 | 6340.4 |
| binance | btc markets | 100000004 | 5785 | 18.1 | 455 | 319 | 9 | 2.2 | 2349.1 | 2846.0 |
| bitstamp | bitso | 22794384 | 5409 | 17.4 | 402 | 310 | 12 | 5.9 | 545.1 | 717.6 |
| bitstamp | r578svZgHf | 1540408098 | 400 | 16.7 | 27 | 24 | 14 | 15.6 | 53362.5 | 14733.5 |
| r578svZgHf | btc markets | 100006466 | 396 | 16.5 | 27 | 24 | 14 | 19.4 | 53711.6 | 15624.7 |
| paribu | binance | 108571021 | 175 | 15.9 | 10 | 11 | 11 | 3.3 | 1498.1 | 763.0 |
| paribu | btcturk | 8909341 | 399 | 14.8 | 27 | 27 | 14 | 1.4 | 1466.2 | 837.1 |
| rNgHXPviCp | bitstamp | 97376688 | 2406 | 14.3 | 370 | 168 | 14 | 1.4 | 105596.4 | 73499.9 |
| binance | coinbase pro | 252037528 | 152 | 13.8 | 16 | 11 | 9 | 30.0 | 7044.4 | 5220.3 |
| binance | coinbase pro | 2844039584 | 918 | 13.7 | 73 | 67 | 15 | 1.5 | 14610.6 | 2960.3 |
| btcturk | paribu | 556343 | 336 | 12.9 | 25 | 26 | 15 | 1.6 | 1481.3 | 735.0 |
| bitso | bitstamp | 80025555 | 2899 | 12.0 | 337 | 241 | 15 | 1.8 | 7616.8 | 6496.2 |
| bithumb | binance | 104930855 | 706 | 12.0 | 65 | 59 | 13 | 1.5 | 9004.8 | 4224.1 |
| huobi global | binance | 104930855 | 235 | 11.2 | 26 | 21 | 14 | 1.4 | 5730.9 | 931.0 |
| rEVrb2XPMx | binance | 102466089 | 895 | 11.2 | 83 | 80 | 11 | 1.8 | 1557.8 | 454.7 |
| binance | bithumb | 1004777177 | 708 | 10.9 | 72 | 65 | 15 | 1.2 | 7455.4 | 2263.9 |
| ra81gY4HtL | bw.com | 100148339 | 374 | 10.4 | 93 | 36 | 8 | 2.9 | 836.0 | 314.1 |
| btcturk | binance | 108571021 | 259 | 10.4 | 155 | 25 | 11 | 3.4 | 1729.9 | 1158.1 |
| binance | raQwCVAJVq | 2188290729 | 812 | 9.9 | 85 | 82 | 13 | 1.3 | 1593.0 | 547.4 |
| rnP2Rvq5sy | rHZMaubybZ | 69979 | 88 | 9.8 | 11 | 9 | 9 | 11.3 | 75.5 | 59.7 |
| bitcoin.co.id | rwTXopz15W | 419 | 68 | 9.7 | 9 | 7 | 7 | 999.0 | 3192.2 | 2377.0 |
| coinbase | binance | 100994718 | 76 | 9.5 | 15 | 8 | 7 | 30.0 | 5980.5 | 3540.3 |
| kucoin | bitrue | 18603447 | 225 | 9.4 | 27 | 24 | 11 | 1.9 | 110.0 | 54.1 |
| rHUAEDchvG | raQwCVAJVq | 2077928104 | 749 | 9.4 | 84 | 80 | 14 | 1.1 | 14975.3 | 3756.7 |
| binance | raQwCVAJVq | 2025761448 | 553 | 9.2 | 79 | 60 | 10 | 1.8 | 2922.8 | 1586.9 |
| binance | r9FnQZ8WLJ | 1985413 | 2028 | 9.1 | 271 | 222 | 12 | 1.7 | 6300.1 | 2180.9 |
| binance | huobi | 103937 | 1798 | 9.1 | 454 | 198 | 14 | 1.4 | 4973.3 | 3148.7 |
| coinone | raQwCVAJVq | 903457449 | 178 | 8.9 | 21 | 20 | 15 | 5.1 | 236.7 | 570.7 |
| coinone | binance | 108770855 | 177 | 8.8 | 22 | 20 | 12 | 2.6 | 2352.8 | 814.0 |
| rwPbLSqTDY | rav4ti22Ny | 2202787 | 495 | 8.7 | 96 | 57 | 7 | 2.3 | 2633.8 | 2344.3 |
| binance | kraken | 3942346117 | 831 | 8.7 | 100 | 96 | 12 | 1.7 | 10115.7 | 2781.5 |
| r97KeayHuE | binance | 104425059 | 357 | 8.5 | 56 | 42 | 11 | 4.1 | 4259.2 | 2363.0 |
| rEVrb2XPMx | rUMhAy8zEC | 167486 | 722 | 8.5 | 85 | 85 | 15 | 1.1 | 15447.1 | 3871.3 |
| rBjft7cphu | bw.com | 100149158 | 118 | 8.4 | 16 | 14 | 12 | 1.1 | 73.6 | 497.0 |
| rNgHXPviCp | btc markets | 100005900 | 1102 | 8.1 | 233 | 136 | 15 | 1.9 | 50979.7 | 31454.7 |
| rwPbLSqTDY | rGdHd9Re5K | 102491 | 338 | 8.0 | 93 | 42 | 8 | 4.1 | 2833.4 | 2731.1 |
| paribu | binance | 104281931 | 276 | 7.9 | 41 | 35 | 15 | 2.4 | 1866.5 | 1581.6 |
| rEVrb2XPMx | binance | 104125249 | 407 | 7.8 | 77 | 52 | 8 | 1.4 | 3329.7 | 1776.9 |
| rwPbLSqTDY | r9FnQZ8WLJ | 1809716 | 202 | 7.8 | 86 | 26 | 8 | 13.1 | 2010.8 | 1983.2 |
| binance | bithumb | 1000580304 | 1563 | 7.7 | 210 | 202 | 15 | 1.3 | 45663.9 | 21992.4 |
| binance | btcturk | 602571 | 3130 | 7.7 | 458 | 406 | 14 | 1.6 | 8667.9 | 2665.8 |
| bithumb | raQwCVAJVq | 1883679403 | 354 | 7.7 | 77 | 46 | 9 | 1.1 | 4355.1 | 3136.1 |
| kraken | btcturk | 1275771 | 1015 | 7.7 | 454 | 132 | 8 | 2.4 | 20353.0 | 14742.3 |
| binance | zebpay | 97867 | 207 | 7.7 | 27 | 27 | 14 | 1.5 | 762.4 | 458.3 |
| kucoin | bitrue | 18603338 | 117 | 7.3 | 30 | 16 | 7 | 1.8 | 123.1 | 53.7 |
| binance | rGZV96HKpR | 1278 | 218 | 7.3 | 55 | 30 | 9 | 1.6 | 95.8 | 68.8 |
| kraken | coinbase pro | 3434336864 | 2340 | 7.2 | 400 | 325 | 14 | 1.3 | 4068.1 | 5711.1 |
| rHUAEDchvG | raQwCVAJVq | 2886707880 | 573 | 7.2 | 83 | 80 | 14 | 1.1 | 31314.4 | 15408.4 |
| huobi global | binance us | 100075136 | 391 | 6.9 | 161 | 57 | 8 | 1.3 | 3326.1 | 1174.9 |
| binance | luno | 3744434287 | 144 | 6.9 | 29 | 21 | 9 | 1.5 | 166.3 | 37.7 |
| binance | bitbay | 28105 | 1103 | 6.9 | 336 | 161 | 8 | 2.9 | 1430.3 | 1808.1 |
| coinbase pro | binance | 100994718 | 68 | 6.8 | 240 | 10 | 7 | 999.0 | 9300.4 | 29739.2 |
| coinone | kucoin | 1863219838 | 155 | 6.7 | 22 | 23 | 15 | 1.4 | 4301.2 | 1490.5 |
| bitstamp | coins.ph | 149411 | 1110 | 6.7 | 368 | 165 | 14 | 1.9 | 80.5 | 244.0 |
| huobi | binance | 104930855 | 160 | 6.7 | 28 | 24 | 14 | 2.6 | 5822.4 | 926.0 |
| binance | raQwCVAJVq | 903457449 | 86 | 6.6 | 16 | 13 | 11 | 1.2 | 121.0 | 537.8 |
| okex | bithumb | 1004945831 | 66 | 6.6 | 16 | 10 | 7 | 999.0 | 16200.9 | 13317.4 |
| bithumb | binance | 107467186 | 132 | 6.6 | 27 | 20 | 11 | 1.4 | 501.5 | 404.0 |
| binance | r48GPigefM | 10000002 | 145 | 6.6 | 27 | 22 | 12 | 1.2 | 335.9 | 66.1 |
| gopax | raQwCVAJVq | 903457449 | 85 | 6.5 | 15 | 13 | 12 | 8.1 | 279.1 | 597.7 |
| rEVrb2XPMx | bitstamp | 43423058 | 474 | 6.5 | 84 | 73 | 13 | 1.7 | 6791.1 | 1730.2 |
| rE9Q8S8e4n | bw.com | 100149158 | 103 | 6.4 | 16 | 16 | 13 | 1.1 | 79.1 | 375.9 |
| rwPbLSqTDY | bitbank | 111613004 | 497 | 6.4 | 95 | 78 | 13 | 2.1 | 2088.7 | 1752.0 |
| bitso | binance | 109624440 | 1087 | 6.4 | 369 | 171 | 11 | 1.6 | 4838.2 | 2093.6 |
| rJdLzYr87z | binance | 106231328 | 357 | 6.3 | 64 | 57 | 14 | 1.6 | 799.2 | 1858.6 |
| r9999t88Vt | huobi | 108431 | 1529 | 6.2 | 309 | 245 | 12 | 1.2 | 670.3 | 480.2 |
| binance | bitbank | 1037459 | 1456 | 6.1 | 455 | 237 | 7 | 2.2 | 3848.8 | 2125.7 |
| rEVrb2XPMx | binance | 107467186 | 170 | 6.1 | 35 | 28 | 12 | 1.2 | 467.3 | 356.8 |
| bitfinex | binance | 104930855 | 408 | 6.0 | 76 | 68 | 15 | 1.3 | 7239.1 | 6103.8 |
| rEVrb2XPMx | bittrex | 428598834 | 102 | 6.0 | 20 | 17 | 11 | 2.5 | 1516.5 | 784.8 |
| d-obmen.cc | exmo | 511097515 | 2470 | 6.0 | 458 | 414 | 13 | 1.1 | 55.5 | 127.5 |
| bitfinex | tokens | 1662078364 | 539 | 5.9 | 133 | 91 | 12 | 1.8 | 248.5 | 102.6 |
| crypto.com | rsdKZYenc7 | 2098233289 | 97 | 5.7 | 89 | 17 | 8 | 1.2 | 360.2 | 503.6 |
| rEVrb2XPMx | rUMhAy8zEC | 172619 | 479 | 5.7 | 85 | 84 | 15 | 1.5 | 34502.9 | 16961.7 |
| binance | raQwCVAJVq | 937798312 | 455 | 5.7 | 84 | 80 | 14 | 1.2 | 3548.9 | 920.5 |
| rHUAEDchvG | bithumb | 1000614389 | 1051 | 5.7 | 210 | 186 | 14 | 1.3 | 12794.0 | 2589.6 |
| bitkub | binance | 103016668 | 698 | 5.6 | 155 | 125 | 15 | 1.5 | 4101.8 | 1703.1 |
| binance | huobi | 106831 | 1794 | 5.6 | 453 | 323 | 15 | 1.2 | 39451.5 | 18946.6 |
| binance | changenow | 112167501 | 1752 | 5.5 | 409 | 316 | 14 | 1.3 | 2130.9 | 4968.4 |
| bw.com | rJGEBwYTKZ | 11483022 | 395 | 5.5 | 393 | 72 | 9 | 1.2 | 1198.8 | 613.5 |
| raBmhBNmYF | bitstamp | 55336291 | 1689 | 5.4 | 458 | 311 | 15 | 1.2 | 23606.7 | 52115.5 |
| rJyDx6RL73 | bittrex | 2021800687 | 2010 | 5.4 | 392 | 372 | 14 | 1.1 | 256.0 | 887.5 |
| bitsdaq | bittrex | 9742032 | 1785 | 5.4 | 451 | 331 | 10 | 1.3 | 322.1 | 986.8 |
| binance | bithumb | 1000614389 | 983 | 5.4 | 210 | 183 | 15 | 1.2 | 12473.3 | 2663.0 |
| binance | btcturk | 1659811 | 1873 | 5.4 | 457 | 350 | 11 | 1.9 | 1651.4 | 710.5 |
| r37Ey6QxeM | huobi | 103945 | 53 | 5.3 | 20 | 10 | 7 | 10.2 | 836.8 | 457.6 |
| r9999t88Vt | bw.com | 100079317 | 1087 | 5.2 | 443 | 208 | 7 | 1.1 | 452.9 | 349.3 |
| digifinex | binance | 104655120 | 479 | 5.2 | 105 | 92 | 12 | 1.3 | 250.1 | 662.7 |
| rEVrb2XPMx | binance | 103567806 | 387 | 5.2 | 83 | 75 | 11 | 1.4 | 3818.8 | 930.6 |
| rEVrb2XPMx | bithumb | 1000000024 | 398 | 5.1 | 83 | 78 | 13 | 1.5 | 31213.7 | 15940.8 |
| binance | bithumb | 1003531684 | 839 | 5.1 | 210 | 165 | 15 | 1.9 | 3902.9 | 1420.6 |
| okex | raQwCVAJVq | 2812914350 | 61 | 5.1 | 16 | 12 | 11 | 7.7 | 14164.4 | 12707.1 |
| rHUAEDchvG | bithumb | 1000000024 | 732 | 5.1 | 160 | 144 | 14 | 1.4 | 28013.6 | 13754.3 |
| rEVrb2XPMx | binance | 101521373 | 381 | 5.1 | 83 | 75 | 13 | 1.3 | 7296.9 | 2340.4 |
| binance | btcturk | 3541541 | 142 | 5.1 | 52 | 28 | 12 | 1.1 | 140.3 | 59.2 |
| binance | raQwCVAJVq | 162572969 | 177 | 5.1 | 43 | 35 | 12 | 2.6 | 479.5 | 390.7 |
| huobi | binance | 104930855 | 80 | 5.0 | 25 | 16 | 12 | 2.8 | 6091.1 | 2233.8 |
+---------------+---------------+------------+---------+----------+----------+----------+----------+--------+----------+-----------+

After full filtering we are left with a table that looks like this

xRapid.exchange.affiliated.corridors.(9).
+-------------+---------------+----------+---------+----------+----------+----------+----------+--------+---------+-----------+------------+
| source | destination | tag | trans | tr/day | active | unique | recent | bias | mean | std-dev | currency |
|-------------+---------------+----------+---------+----------+----------+----------+----------+--------+---------+-----------+------------|
| bitstamp | bitso | 25370527 | 21996 | 85.6 | 393 | 257 | 15 | 1.1 | 22122.3 | 12834.0 | USD / MXN |
| bitstamp | coins.ph | 255577 | 12256 | 105.7 | 175 | 116 | 15 | 1.8 | 396.8 | 697.2 | USD / PHP |
| bitstamp | coins.ph | 255406 | 11872 | 91.3 | 177 | 130 | 15 | 1.7 | 9230.0 | 5548.7 | USD / PHP |
| btc markets | bitstamp | 58871619 | 8343 | 68.4 | 153 | 122 | 13 | 2.4 | 8579.7 | 5793.2 | AUD / USD |
| btc markets | coins.ph | 255406 | 7399 | 64.3 | 153 | 115 | 13 | 3.1 | 5439.9 | 3341.4 | AUD / PHP |
| bitstamp | bitso | 22794384 | 5409 | 17.4 | 402 | 310 | 12 | 5.9 | 545.1 | 717.6 | USD / MXN |
| bitstamp | bitso | 47175592 | 3293 | 22.6 | 225 | 146 | 7 | 2.5 | 20275.5 | 6340.4 | USD / MXN |
| bitso | bitstamp | 80025555 | 2899 | 12.0 | 337 | 241 | 15 | 1.8 | 7616.8 | 6496.2 | MXN / USD |
| bitstamp | coins.ph | 149411 | 1110 | 6.7 | 368 | 165 | 14 | 1.9 | 80.5 | 244.0 | USD / PHP |
+-------------+---------------+----------+---------+----------+----------+----------+----------+--------+---------+-----------+------------+

Payment traffic

Before looking at ODL traffic it is interesting to perform a breakdown of all XRP payments on the ledger by size. The following graphs show the value of payments by categories broken down to $1-$10, then $10-$100, $100-$1000 and so on. 4 plots are visible on each graph. The black ones are payments made between (actually to/into) tagged accounts (raw data and 2 week averaged). The green ones are to untagged accounts (raw and averaged). When making a payment on the ledger between two private accounts, no tag is generally required, but when paying to an exchange where many thousands of user accounts are hosted within a single exchange account, each user has a tag assigned. We see trends in the amount of activity going on as a function of time, but also as a function of size.
payents-all
Much of the the retail activity with transactions of a few dollars up to a few thousand happens between users and exchanges (the black lines have more activity). For very large transfers from tens of thousands of dollars upwards, the activity shifts towards untagged (more anonymous) accounts. Note that the graphs include all retail activity as well as any ODL activity since all XRP payments are included in the plots. They are not important to the main theme of this article, but are nevertheless interesting to examine.

ODL traffic

The same graphs plotted with only ODL corridors (only tagged payments are shown since ODL requires them), show how the bulk of traffic is taking place in the 10K to 100K band. The weekday/weekend structure of payments produces an oscillating pattern that is unmistakable. Other bands show this effect to a lesser extent (small payments on the main ledger plot for example). The main observation that the graphs show is that most of traffic is taking place with larger payments. Ripple has been targeting remittance companies (at least initially) where we might have expected payments to be a few hundred dollars, rather than a few thousand (or tens of thousands). It seems clear from these plots, that the companies using ODL are not making individual retail customer-customer payments using ODL, but rather, topping up nostro/vostro style accounts in destinations so that individual customers can be paid out from the pool. Using ODL in this way seems like an excellent way to build traffic on these corridors so that costs gradually reduce – note that significant traffic using larger payments can be seen dating back to the middle of last year, but smaller payments have been increasing more recently. The fact that smaller ODL payments size traffic is now increasing may be an indication that costs are reducing and that the strategy of building liquidity is working.
payents-ODL

Daily, Weekly, Quarterly plots

The most revealing indicators for me, are the plots of daily and weekly traffic. The following plot shows the daily sum of ODL traffic on all corridors using a stacked plot to identify each corridor.

Daily ODL traffic


Note that there are multiple bars for the same currency (e.g. USD-MXN) because more than one destination tag is being used at the same exchange and this probably means that two customers are using ODL on the same corridor

The pattern of weekday/weekend activity is quite clear in the last few months. Also it is clear that traffic is increasing at a good rate. The initial phase of increase appears exponential, but from February onwards, traffic increases have faltered slightly and have flattened off. The shocks to all markets in the last couple of week in March is evident as a significant drop in traffic has occurred, however, the rate has subsequently risen again. At the time of writing (April 4th), the first week of Q2 2020 has seen 2 of the 3 largest single daily flows, which is very encouraging.

It is important to note also, that time stamps on the XRP ledger use the UTC time zone, so traffic on a Friday evening of the Americas, is Saturday morning for the Far East. Likewise, Monday morning traffic for the Far East is happening on a Sunday for the Americas. UTC is between these two and so the break between weekdays and weekends is slightly smoothed out and doesn’t fall as dramatically as it perhaps would if we compensated daily traffic on each corridor according to it’s time zone.

Weekly ODL traffic

The weekly traffic is a summed bar chart of 7 days worth of transactions, using Monday as the start day and Sunday as the end day (and again using UTC as the cut-off time). From July 2019 until the end of that year, traffic increased almost exponentially but suffered a slight drop at Christmas. It has now approximately doubled in Q1 2020 since the end of last year. The first week of Q2 2020 (week starting March 30th) has proven to be the largest ever and puts growth back onto an upward trend.

Quarterly ODL traffic

Quarterly traffic shows the same trend, with wuite dramatic increases since last year.

In the Ripple Markets report for Q4 2019, the following was written

“In 2019, dollar value transacted through ODL increased more than a hundred times between Q1 and Q4, and specifically from Q3 to Q4, by 550%”.

One obvious question is, can we use this to determine the accuracy of our analysis here. The answer is that, if we sum transaction values over the quarter as shown in the plot and compute the increases, we see that our numbers are slightly out. We see a more than 100x increase in the year and a 595% increase in the last quarter.

 $Totals %Change
2019-Q1 0.04 0.0
2019-Q2 1.12 2700.0
2019-Q3 26.63 2277.7
2019-Q4 185.03 594.8
2020-Q1 547.63 196.0

The discrepancy between 595 and 550 may be attributable to
i) Including too many transactions in Q4
ii) Including too few in Q3
iii) Using a single number for transaction value. As noted earlier, the value is derived from the midpoint of the open/close XRP price during the day and in fact we should use the price at the moment the transaction took place. Additionally, we are assuming the value of transactions is always $USD when in fact the purpose of XRP is to bridge currencies and there will be some differences in precise valuation when considering other currencies. How ripple compute their valuations is almost certainly more sophisticated than the method used here.
iv) The transaction values computed here might include some ‘costs’ and not all of the value is delivered to the final customer.
I suspect that iii) is the most likely explanation for our discrepancy, however, the analysis presented here is definitely in the right ballpark and it is clear that ODL value has increased by almost 200% in Q1 2020.

The Q1 2020 sum of transfers was $547 million. That’s a huge milestone, over half a billion dollars worth of value transferred in the first quarter. At the current pace of around $50 million per week, the end of year will see $2-3 billion dollars worth of value transferred using ODL. If the ODL market continues to grow at the kinds of rate we have seen so far, then we may reach upwards of $5 billion before the end of the year. It will be interesting to see how many new corridors are opened and how quickly their volumes increase over the coming months.

In a future post, I hope to address the important question of “How does the increasing value of traffic affect the price of XRP?”.

If anyone at Ripple takes issue with the figures or analysis presented here and wishes to see changes made, please free to contact me at biddiscoj at gmail dot com.

Sunday 5th April 2020

Agustin Sanchez