<p>From what I can tell, BRD or &quot;Bread&quot; wallet on iOS uses the P2P network directly to connect to bitcoin nodes. This makes it as decentralized as any other bitcoin node. To achieve that, they use <code>walletkit</code> (<a href="https://github.com/blockset-corp/walletkit/" rel="nofollow noreferrer">https://github.com/blockset-corp/walletkit/</a>), an SPV client in C/Swift.</p>

CC BY-SA 4.0
2023-01-14T02:16:52.883Z
This is cool to know, however overall iOS I think is the non-decentralized common denominator regardless of the application.
Poseidon
CC BY-SA 4.0
2020-08-26T19:55:44.877Z
2020-08-26T19:55:44.877Z
cloudhead
<p>An iOS app does not need to use any multiple connection framework provided by the iOS SDK at all. Apple does not need to have any API to support this since it can be done with threading and the normal network connection API.</p>

<p>An iOS app developer can use the standard Network connection framework in order to open a TCP connection to whatever nodes they want to. They can connect to multiple nodes by creating a thread for each node and each thread uses the Network connection framework to establish the connection. In this way, there is no need for anything like MultiPeerConnectivity or any special framework for connecting to multiple network targets.</p>

CC BY-SA 4.0
2019-03-25T03:11:20.367Z
If that makes it “decentralized” or not is another matter though.
Claris
CC BY-SA 4.0
2019-03-25T13:50:01.650Z
@AndrewChow Thanks for that. Could you point me to a sample code snippet that makes use of the network connection API to send data to an IP/Port? I tried looking but couldn’t find any, only found the API reference.
AjLearning
CC BY-SA 4.0
2019-03-24T16:32:58.247Z
2019-03-24T16:32:58.247Z
Ava Chow
<p>The only offering for p2p support on iOS that I’m aware of is the MultipeerConnectivity framework. Based on its documentation, it only seems to support nearby devices (ref: <a href="https://developer.apple.com/documentation/multipeerconnectivity" rel="nofollow noreferrer">https://developer.apple.com/documentation/multipeerconnectivity</a>).</p>

<p>Now, by “truly decentralised”, I mean no use of a backend whatsoever.</p>

<p>Perhaps there’s something I might be missing. If wallet apps are indeed, truly decentralised, how do they achieve this?</p>

<wallet><ios>
Are Bitcoin wallet apps on iOS truly decentralised
AjLearning
# Are Bitcoin wallet apps on iOS truly decentralised

(Asked by: username_0 on 2019-03-24)

The only offering for p2p support on iOS that I’m aware of is the MultipeerConnectivity framework. Based on its documentation, it only seems to support nearby devices (ref: <https://developer.apple.com/documentation/multipeerconnectivity>).

Now, by “truly decentralised”, I mean no use of a backend whatsoever.

Perhaps there’s something I might be missing. If wallet apps are indeed, truly decentralised, how do they achieve this?

**Tags:** wallet, ios


---

## 2 answers

### Answer by username_1 on 2020-08-26. Score: 1

From what I can tell, BRD or "Bread" wallet on iOS uses the P2P network directly to connect to bitcoin nodes. This makes it as decentralized as any other bitcoin node. To achieve that, they use `walletkit` (<https://github.com/blockset-corp/walletkit/>), an SPV client in C/Swift.

> **Comments:**
> **username_2**: This is cool to know, however overall iOS I think is the non-decentralized common denominator regardless of the application.  

---

### Answer by username_3 on 2019-03-24. Score: 0

An iOS app does not need to use any multiple connection framework provided by the iOS SDK at all. Apple does not need to have any API to support this since it can be done with threading and the normal network connection API.

An iOS app developer can use the standard Network connection framework in order to open a TCP connection to whatever nodes they want to. They can connect to multiple nodes by creating a thread for each node and each thread uses the Network connection framework to establish the connection. In this way, there is no need for anything like MultiPeerConnectivity or any special framework for connecting to multiple network targets.

> **Comments:**
> **username_4**: If that makes it “decentralized” or not is another matter though.  
> **username_0**: @AndrewChow Thanks for that. Could you point me to a sample code snippet that makes use of the network connection API to send data to an IP/Port? I tried looking but couldn’t find any, only found the API reference.  

---

