Other than Coinbase, are there reputable exchanges that provide unauthenticated access to prices over IPv6 (ie compatible with HTTP outcalls)?

I’ve tried:

ping6 api.kraken.com
ping6 bitstamp.net
ping6 api.itbit.com 
ping6 api.sandbox.gemini.com
ping6 api.gemini.com
ping6 api.coinbase.com
ping6 public-data-api.london-demo.lmax.com
ping6 public-data-api.london-digital.lmax.com

which are the constituents of the CME bitcoin rate.

These all work on local development using HTTP Outcalls (so I built locally on Kraken’s response type), but only Coinbase appears to be available over IPv6, so it seems to be the only one of those available on IC mainnet. I thought it required authenticated calls but the price works unauthenticated.

Are there more reliable unauthenticated price providers accesible to the IC?

1 Like

Yes, there are others, for example:

Note that the exchange rate canister currently uses Coinbase and these two.

3 Likes

I guess it’s a start but I wouldn’t entrust a massive amount to those two, and even if trustworthy, they don’t have USD pairs. Only USDT / USDC, meaning if the stablecoins fail and depeg, the services relying on those sources will also collapse. It’s one reason why the CME rate is exclusively integrated by direct USD pair data.

2 Likes

I agree. More trustworthy sources are needed.

2 Likes

How far away is the IC from IPv4 support?

1 Like

@yotam would be the right person to comment on that.

It is not clear yet. There are some major technical and security challenges to allow all canisters to be able to make outcalls to IPv4. We might first only let the exchange rate canister do that, since it is a system canister in a system subnet (so we can isolate it and make sure no malicious code can use the same infrastructure). But we are also looking into multiple options for providing IPv4 to all canisters.

4 Likes

Is there an example request in Motoko for this? A real one that includes sending cycles and whatever is necessary for the call to work.

Here’s a Motoko sample: examples/motoko/exchange_rate at master · dfinity/examples · GitHub
And the function that performs the actual call: examples/Main.mo at master · dfinity/examples · GitHub

1 Like

You can find Motoko code that shows how to interact with the exchange rate canister here.

1 Like