specs/docs/draft/13-3rd-party.md

126 lines
4.4 KiB
Markdown
Raw Normal View History

2020-05-04 08:24:20 +00:00
---
permalink: /spec/13
2020-05-15 09:15:52 +00:00
parent: Draft specs
title: 13/3RD-PARTY-USAGE
2020-05-04 08:24:20 +00:00
---
2020-05-04 08:14:18 +00:00
# 13/3RD-PARTY
2020-05-12 10:45:29 +00:00
> Version: 0.1
>
> Status: Draft
>
> Authors: Volodymyr Kozieiev <volodymyr@status.im>
2020-05-15 09:15:52 +00:00
# Third party APIs used for core functionality
2020-05-04 08:14:18 +00:00
## Table of Contents
2020-05-21 09:44:13 +00:00
1. [Abstract](#abstract)
2020-05-04 08:14:18 +00:00
2. [Definitions](#definitions)
2020-05-04 08:24:20 +00:00
3. [Why 3rd party API can be a problem?](#why-3rd-party-api-can-be-a-problem)
2020-05-12 10:45:29 +00:00
4. [3rd party APIs used by Status](#3rd-party-apis-used-by-current-status-app)
2020-05-04 08:24:20 +00:00
* [Infura](#infura)
* [Etherscan](#etherscan)
* [CryptoCompare](#cryptocompare)
* [Collectibles](#collectibles)
* [Iubenda](#iubenda)
5. [Changelog](#changelog)
6. [Acknowledgments](#acknowledgments)
2020-05-04 08:24:20 +00:00
7. [Copyright](#copyright)
2020-05-04 08:14:18 +00:00
## Abstract
2020-05-21 09:44:13 +00:00
2020-05-15 09:15:52 +00:00
In this specification, we discuss 3rd party APIs that Status relies on. These APIs provide various capabilities such as:
- communicate with the Ethereum network
- allow users to see address and transaction details on external website
- get fiat/crypto exchange rates
- get information about collectibles
2020-05-12 10:45:29 +00:00
- hosts privacy policy
2020-05-04 08:14:18 +00:00
## Definitions
| Term | Description |
| ------------- |-------------|
| Fiat money | Currency which established as money, often by government regulation, but that has no intrinsic value
| Full node | Any computer, connected to the Ethereum network, which fully enforces all the consensus rules of Ethereum.
| Crypto-collectible | A cryptographically unique, non-fungible digital asset . Unlike cryptocurrencies, which require all tokens to be identical, each crypto-collectible token is unique or limited in quantity.
## Why 3rd party API can be a problem?
Relying on 3rd party APIs interferes with `censorship resistance` Status principle. Since we aim to avoid suppression of information it is important to reduce amount of 3rd parties crucial for app functionality.
2020-05-12 10:45:29 +00:00
## 3rd party APIs used by current Status app
2020-05-04 08:14:18 +00:00
### Infura
##### What is it?
2020-05-15 09:15:52 +00:00
Infura hosts a collection of full nodes for the Ethereum network and provides an API to access both the Ethereum and IPFS networks without having to run a full node.
2020-05-04 08:14:18 +00:00
##### How Status use it?
Status works on mobile devices and therefore can't rely on local node. So all communication to Ethereum network happens via Infura.
##### Concerns
2020-05-15 09:15:52 +00:00
Making http request means that a user leaks metadata, which can be used in various attacks if the service is hacked.
Infura hosts on centralized providers. If these fail or the provider cuts off service, then Status features requiring Ethereum calls will.
2020-05-04 08:14:18 +00:00
### Etherscan
##### What is it?
2020-05-15 09:15:52 +00:00
Etherscan is a service that allows user to explore and search the Ethereum blockchain for transactions, addresses, tokens, prices and other activities taking place on Ethereum.
2020-05-04 08:14:18 +00:00
##### How Status use it?
2020-05-15 09:15:52 +00:00
Status Wallet allows users to view details of addresses and transactions on Etherscan.
2020-05-04 08:14:18 +00:00
##### Concerns
If Etherscan fails user won't be able to view address or transaction details with it. But inside the app this info will still be available.
### CryptoCompare
##### What is it?
CryptoCompare is a service that shows live streaming prices, charts and analysis from top crypto exchanges.
##### How Status use it?
Status regularly fetches crypto prices from CryptoCompare. Using that info Status calculates fiat value for transaction or wallet assets.
##### Concerns
2020-05-15 09:15:52 +00:00
Making http request means that a user leaks metadata, which can be used in various attacks if the service is hacked.
2020-05-04 08:14:18 +00:00
If CryptoCompare fails Status won't be able to show fiat equivalent of crypto in wallet.
### Collectibles
There is a set of services that used for getting information about collectibles:
- https://api.pixura.io/graphql
- https://www.etheremon.com/api
- https://us-central1-cryptostrikers-prod.cloudfunctions.net/cards/
- https://api.cryptokitties.co/
##### Concerns
2020-05-15 09:15:52 +00:00
Making http request means that a user leaks metadata, which can be used in various attacks if the service is hacked.
2020-05-04 08:14:18 +00:00
### Iubenda
2020-05-04 08:14:18 +00:00
##### What is it?
2020-05-04 08:14:18 +00:00
Service that helps in creating documents that make websites and apps compliant with the law across multiple countries and legislations.
##### How Status use it?
Privacy policy of Status hosted on Iubenda.
##### Concerns
If Iubenda fails Status users won't be able to navigate to app's privacy policy.
2020-05-04 08:24:20 +00:00
## Changelog
| Version | Comment |
| :-----: | ------- |
2020-05-18 09:00:44 +00:00
| [0.1.0](https://github.com/status-im/specs/blob/master/docs/draft/9-3rd-party.md) | Initial Release |
2020-05-04 08:24:20 +00:00
## Acknowledgments
2020-05-04 08:24:20 +00:00
## Copyright
Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).