# Grin iOS testnet wallet

**URL:** <https://forum.grin.mw/t/grin-ios-testnet-wallet/12431>\
**Category:** Uncategorized\
**Created:** [March 4, 2026, 11:24pm UTC](https://forum.grin.mw/t/grin-ios-testnet-wallet/12431 "2026-03-04T23:24:00Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![waynegeorge](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/waynegeorge/32/6601_2.png) [@waynegeorge](https://forum.grin.mw/u/waynegeorge)\
**Post date:** [March 4, 2026, 11:24pm UTC](https://forum.grin.mw/t/grin-ios-testnet-wallet/12431/1 "2026-03-04T23:24:00Z")

</div>

I have started work on an iOS native wallet for Grin. The idea is that I launch it as a testnet wallet to begin with, to allow me to bypass the cryptocurrency restrictions that Apple enforces on individual accounts. Once mature and fully audited, it can be launched as a mainnet app via a company or organisation.

I look forward to hearing feedback in terms of functionality and behaviour. At this stage, the possibilities are pretty endless, so be creative. I have experimented with a payment wheel and shortcut buttons and I’m open to other ideas. I would certainly like to explore NFC on Android. iOS may be more of a challenge but the multi-peer connectivity is a good start. I think I still need to add HTTP addresses and QR code scanning whilst trying to avoid the UX getting crowded. The goal is to keep it usable by a wide audience.

[![](https://img.youtube.com/vi/BUPS5N6OUbs/maxresdefault.jpg "Grin testnet iOS app") ](https://www.youtube.com/watch?v=BUPS5N6OUbs)

---

<div class="post-metadata">

**Author:** ![ardocrat](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/ardocrat/32/5164_2.png) [@ardocrat](https://forum.grin.mw/u/ardocrat)\
**Post date:** [March 5, 2026, 6:22am UTC](https://forum.grin.mw/t/grin-ios-testnet-wallet/12431/2 "2026-03-05T06:22:48Z")

</div>

Common restrictions are: unability to launch bridge for Tor (Apple limits memory usage for Network Extensions at 50Mb: [“Use Direct Connection” Always be 5% · Issue #94 · guardianproject/orbot-apple · GitHub](https://github.com/guardianproject/orbot-apple/issues/94#issuecomment-2395047362)) and LLC to publish the app.

---

<div class="post-metadata">

**Author:** ![Anynomous](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/anynomous/32/2928_2.png) [@Anynomous](https://forum.grin.mw/u/Anynomous)\
**Post date:** [March 5, 2026, 11:55am UTC](https://forum.grin.mw/t/grin-ios-testnet-wallet/12431/3 "2026-03-05T11:55:02Z")

</div>

Nice design!  
I particularly like the turning wheel to display the relative amount/total you are sending. Also being able to send via locally found devices is pretty cool.  
Perhaps to allow locally sending with Android add a QR button for the slate-pack and a read QR button for receiving.

---

<div class="post-metadata">

**Author:** ![waynegeorge](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/waynegeorge/32/6601_2.png) [@waynegeorge](https://forum.grin.mw/u/waynegeorge)\
**Post date:** [March 5, 2026, 11:58am UTC](https://forum.grin.mw/t/grin-ios-testnet-wallet/12431/4 "2026-03-05T11:58:31Z")

</div>

Thanks.

Yes I added the QR code generating and reading this morning lol.

 ![IMG_9750](https://canada1.discourse-cdn.com/flex036/uploads/grin/original/2X/e/e2360bffcade1ae4b15abdb7ebc95998e79d6a12.png)

 ![IMG_9751](https://canada1.discourse-cdn.com/flex036/uploads/grin/original/2X/4/4a1b2947dc235e7149c68b358b7d52a21d39663f.png)

---

<div class="post-metadata">

**Author:** ![ardocrat](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/ardocrat/32/5164_2.png) [@ardocrat](https://forum.grin.mw/u/ardocrat)\
**Post date:** [March 5, 2026, 12:31pm UTC](https://forum.grin.mw/t/grin-ios-testnet-wallet/12431/5 "2026-03-05T12:31:18Z")

</div>

Slatepack response is very big and can be hard to read for some cameras, check if Animated QR with UR resources can be added ([GitHub - BlockchainCommons/URKit: UR (Uniform Resources) reference framework for Swift · GitHub](https://github.com/blockchaincommons/URKit)) (also used by Blockstream’s Jade [https://help.blockstream.com/hc/en-us/articles/20347921365785-Send-air-gapped-Bitcoin-transactions-via-QR](https://help.blockstream.com/hc/en-us/articles/20347921365785-Send-air-gapped-Bitcoin-transactions-via-QR))

---

<div class="post-metadata">

**Author:** ![trab](https://avatars.discourse-cdn.com/v4/letter/t/f04885/32.png) [@trab](https://forum.grin.mw/u/trab)\
**Post date:** [March 6, 2026, 8:04pm UTC](https://forum.grin.mw/t/grin-ios-testnet-wallet/12431/6 "2026-03-06T20:04:02Z")

</div>

This is awesome! Maybe you could take this in the [Venmo/Cashapp product planning](https://forum.grin.mw/t/venmo-cashapp-product-planning/9714) direction since it’s pretty open ended?

I think people just expect and want something very very close to cash app these days.

If we don’t have contacts and messages (and history with notes) built in to the app via a messaging protocol like chatmail, then I think users at least need something more than a plain slatepack text. Maybe wrap the slatepack in an app URI so tapping the slate auto opens your wallet and fills in fields with the slatepack text automatically?

I think @ardocrat favors the file route because the slatepack is so very long though. It’s just that files are kinda spooky to people I think. So we sort of end up back thinking about a messaging protocol again.

---

<div class="post-metadata">

**Author:** ![ardocrat](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/ardocrat/32/5164_2.png) [@ardocrat](https://forum.grin.mw/u/ardocrat)\
**Post date:** [March 8, 2026, 2:16pm UTC](https://forum.grin.mw/t/grin-ios-testnet-wallet/12431/7 "2026-03-08T14:16:18Z")

</div>

> [@trab](#):
>
> in an app URI

Its enough to specify amount + memo in the link, to open link with any app, it should have https:// scheme, as we know keybase:// links not worked properly, its enough to include g1 address and amount with memo inside (contracts txs will be needed for memo). i.e.: [https://grin.mw/?to=grin1s3l9gtgensvktjj5c2fk4zwjxzf85nttjkw2l0pjajmwpmhavkjq9y9crk&a=0.1234&m=21930789237892173](https://grin.mw/?to=grin1s3l9gtgensvktjj5c2fk4zwjxzf85nttjkw2l0pjajmwpmhavkjq9y9crk&a=0.1234&m=21930789237892173)

It works for Desktop apps too:

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/grin/original/2X/7/7d66e431213bb11ca3d36848cbffd18847024054.png)

---

<div class="post-metadata">

**Author:** ![trab](https://avatars.discourse-cdn.com/v4/letter/t/f04885/32.png) [@trab](https://forum.grin.mw/u/trab)\
**Post date:** [March 8, 2026, 4:57pm UTC](https://forum.grin.mw/t/grin-ios-testnet-wallet/12431/8 "2026-03-08T16:57:18Z")

</div>

Oh I guess Apple prefers developers using [Universal Links](https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html) now instead of raw URIs. So like [https://gri.mw](https://gri.mw) instead of grin:// because the latter can be hijacked by malicious apps easier.

Does Grim use a universal link for slatepack sending now?

---

<div class="post-metadata">

**Author:** ![ardocrat](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/ardocrat/32/5164_2.png) [@ardocrat](https://forum.grin.mw/u/ardocrat)\
**Post date:** [March 9, 2026, 8:45am UTC](https://forum.grin.mw/t/grin-ios-testnet-wallet/12431/9 "2026-03-09T08:45:26Z")

</div>

> [@trab](#):
>
> Does Grim use a universal link for slatepack sending now?

Not yet, only files opening, exploring this now

---

<div class="post-metadata">

**Author:** ![waynegeorge](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/waynegeorge/32/6601_2.png) [@waynegeorge](https://forum.grin.mw/u/waynegeorge)\
**Post date:** [March 17, 2026, 10:27pm UTC](https://forum.grin.mw/t/grin-ios-testnet-wallet/12431/10 "2026-03-17T22:27:47Z")

</div>

After many late nights and early mornings, I have an important update to share. The following is a demo video of an alpha release of the Grin iOS testnet wallet. Source code to follow shortly. I’m currently in the process of publishing it in the App Store for direct download also. I’m approaching it from the angle that this version is for educational and research purposes so I am hoping that the cryptocurrency restrictions on individual accounts won’t apply. Fingers crossed on that. I’ll keep you updated on the progress.

[![](https://img.youtube.com/vi/pQ4kV8Wy3nM/maxresdefault.jpg "Grin iOS (Testnet) Wallet Progress Update") ](https://www.youtube.com/watch?v=pQ4kV8Wy3nM)

---

<div class="post-metadata">

**Author:** ![bruges](https://avatars.discourse-cdn.com/v4/letter/b/b3f665/32.png) [@bruges](https://forum.grin.mw/u/bruges)\
**Post date:** [March 17, 2026, 11:37pm UTC](https://forum.grin.mw/t/grin-ios-testnet-wallet/12431/11 "2026-03-17T23:37:48Z")

</div>

Lovely wallet, great UI 👍

---

<div class="post-metadata">

**Author:** ![waynegeorge](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/waynegeorge/32/6601_2.png) [@waynegeorge](https://forum.grin.mw/u/waynegeorge)\
**Post date:** [March 18, 2026, 10:56am UTC](https://forum.grin.mw/t/grin-ios-testnet-wallet/12431/12 "2026-03-18T10:56:23Z")

</div>

The [source code](https://github.com/waynegeorge/grin-wallet-ios) is now public for anybody who wants to build and test. The FFI library is included so all you need is a Apple Silicon Mac with Xcode installed.

---

<div class="post-metadata">

**Author:** ![hellogrin](https://avatars.discourse-cdn.com/v4/letter/h/a5b964/32.png) [@hellogrin](https://forum.grin.mw/u/hellogrin)\
**Post date:** [March 20, 2026, 5:43pm UTC](https://forum.grin.mw/t/grin-ios-testnet-wallet/12431/13 "2026-03-20T17:43:29Z")

</div>

sound great! your wallet will connect to external node or can run local pruned node inside the app?

---

<div class="post-metadata">

**Author:** ![waynegeorge](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/waynegeorge/32/6601_2.png) [@waynegeorge](https://forum.grin.mw/u/waynegeorge)\
**Post date:** [March 21, 2026, 5:24am UTC](https://forum.grin.mw/t/grin-ios-testnet-wallet/12431/14 "2026-03-21T05:24:32Z")

</div>

It would connect to an external node. Ideally one that you’d run yourself. Even if indefinite app background refresh was allowed on iOS, it’d likely drain the battery pretty quickly.

---

<div class="post-metadata">

**Author:** ![waynegeorge](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/waynegeorge/32/6601_2.png) [@waynegeorge](https://forum.grin.mw/u/waynegeorge)\
**Post date:** [March 23, 2026, 3:26pm UTC](https://forum.grin.mw/t/grin-ios-testnet-wallet/12431/15 "2026-03-23T15:26:54Z")

</div>

After a long delay, the App Store submission decision came through today with a decision of rejection. Their response follows below. In summary, they’ve essentially said that a testnet app is not suitable for the App Store and then if it was a mainnet app, it’d need to be submitted via an organisation as we know. I’m not sure about the second matter as I didn’t include the word “iOS” in the submission name. Nevertheless, the app can still be submitted via TestFlight. The App Store submission at this stage was an attempt to make it super accessible. I’m happy to discuss next steps in the meeting tomorrow.

Hello,

Thank you for submitting the new app, Grin Testnet Wallet, for review. We noticed some issues that require your attention. Please see below for additional information.

If you have any questions, we are here to help. Reply to this message in App Store Connect and let us know.

### **Review Environment**

Submission ID: c917e8ec-60e3-48fa-98c3-e3cec23770e5  
Review date: March 23, 2026  
Review Device: iPad Air 11-inch (M3)  
Version reviewed: 0.1

### **Guideline 2.2 - Performance - Beta Testing**

**Issue Description**

Your app appears to be a pre-release, test, or trial version with a limited feature set. Apps that are created for test or trial purposes are not appropriate for the App Store.

**Next Steps**

To resolve this issue, please complete, remove, or fully configure any partially implemented features. If the app is not ready for public distribution, use TestFlight to test the app.

**Resources**

- Learn more about beta testing requirements in [guideline 2.2](https://developer.apple.com/app-store/review/guidelines/#2.2).
- Test apps and invite users to provide feedback with [TestFlight Beta Testing](https://developer.apple.com/testflight/).

### **Guideline 5.2.5 - Legal - Intellectual Property**

Your app does not comply with the [Guidelines for Using Apple’s Trademarks and Copyrights](http://www.apple.com/legal/trademark/guidelinesfor3rdparties.html). Specifically, your app includes:

- the following misspelling or a phonetically similar version of an Apple product name: iOS

**Next Steps**

To resolve this issue, please revise your app and its metadata to address these trademark issues.

**Resources**

For information on changing the app name and other metadata in App Store Connect, please review the [View and edit app information](https://help.apple.com/app-store-connect/#/dev97865727c) section of App Store Connect Developer Help.

For information on how to revise your device name, please review [Technical Q&A QA1823: Updating the Display Name of Your App](https://developer.apple.com/library/archive/qa/qa1823/_index.html#//apple_ref/doc/uid/DTS40014218).

### **Guideline 3.1.5 - Business - Payments - Cryptocurrencies**

**Issue Description**

Your wallet app facilitates the transmission and/or storage of a virtual currency but was submitted by an Apple Developer Program account registered to an individual, which is not appropriate for the App Store.

**Next Steps**

Your app must be submitted through an Apple Developer Program account enrolled as an organization. You may either [enroll in a new Apple Developer Program account as an organization](https://developer.apple.com/programs/enroll/), or request that your individual account be converted to an organization account by [contacting Apple Developer Support](https://developer.apple.com/contact/topic/select).

Note that submitting documentation showing permission to publish this app on behalf of the content owner or institution will not resolve this issue. This app must be submitted under the content owner’s own Apple Developer account.

**Resources**

Learn more about requirements for apps with cryptocurrency related services in [guideline 3.1.5](https://developer.apple.com/app-store/review/guidelines/#3.1.5).

---

<div class="post-metadata">

**Author:** ![hellogrin](https://avatars.discourse-cdn.com/v4/letter/h/a5b964/32.png) [@hellogrin](https://forum.grin.mw/u/hellogrin)\
**Post date:** [March 25, 2026, 10:45pm UTC](https://forum.grin.mw/t/grin-ios-testnet-wallet/12431/16 "2026-03-25T22:45:27Z")

</div>

Or you can work around by another name like grin chat? nickname based on grin address, able to create group chat,… connection to external nodes. interactive payment by slatepack only. remove all text related to crypto.

---

<div class="post-metadata">

**Author:** ![trab](https://avatars.discourse-cdn.com/v4/letter/t/f04885/32.png) [@trab](https://forum.grin.mw/u/trab)\
**Post date:** [March 26, 2026, 2:12am UTC](https://forum.grin.mw/t/grin-ios-testnet-wallet/12431/17 "2026-03-26T02:12:41Z")

</div>

Even Nostr apps that used lightning for tips have had issues before. But I think some of them did get accepted in the end.

---

<div class="post-metadata">

**Author:** ![Anynomous](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.grin.mw/anynomous/32/2928_2.png) [@Anynomous](https://forum.grin.mw/u/Anynomous)\
**Post date:** [March 26, 2026, 8:06am UTC](https://forum.grin.mw/t/grin-ios-testnet-wallet/12431/18 "2026-03-26T08:06:08Z")

</div>

Why not call it iGrin or something similar, they would probably not accept it as name though​😜.
