Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

TonChan - A mobile, native TurtleCoin wallet


Initial Setup

  • cd TonChan
  • yarn install


  • node --max-old-space-size=8192 node_modules/react-native/local-cli/cli.js start (Just need to run this once to start the server, leave it running)
  • react-native run-android


react-native log-android

Creating a release

You need to bump the version number in:

  • src/Config.js - appVersion
  • android/app/build.gradle - versionCode and versionName
  • package.json - version - Not strictly required
  • Update user agent in android/app/src/main/java/com/tonchan/ and android/app/src/main/java/com/tonchan/

Then either run yarn deploy-android, or:

cd android

Create an AAB

./gradlew bundleRelease

Create an APK

./gradlew assembleRelease

Deploy to device

./gradlew installRelease

Integrating QR Codes or URIs

TonChan supports two kinds of QR codes.

  • Standard addresses / integrated addresses - This is simply the address encoded as a QR code.

  • turtlecoin:// URI encoded as a QR code.

Your uri must begin with turtlecoin:// followed by the address to send to, for example, turtlecoin://TRTLv2Fyavy8CXG8BPEbNeCHFZ1fuDCYCZ3vW5H5LXN4K2M2MHUpTENip9bbavpHvvPwb4NDkBWrNgURAd5DB38FHXWZyoBh4wW

There are a few optional parameters.

  • name - This is used to add you to the users address book, and identify you on the 'Confirm' screen. A name can contain spaces, and should be URI encoded.
  • amount - This is the amount to send you. This should be specified in atomic units.
  • paymentid - If not using integrated address, you can specify a payment ID. Specifying an integrated address and a payment ID is illegal.

An example of a URI containing all of the above parameters:


This would send 100 TRTL (10000 in atomic units) to the address TRTLv2Fyavy8CXG8BPEbNeCHFZ1fuDCYCZ3vW5H5LXN4K2M2MHUpTENip9bbavpHvvPwb4NDkBWrNgURAd5DB38FHXWZyoBh4wW, using the name Starbucks Coffee (Note the URI encoding), and using a payment ID of f13adc8ac78eb22ffcee3f82e0e9ffb251dc7dc0600ef599087a89b623ca1402

You can also just display the URI as a hyperlink. If a user clicks the link, it will open the app, and jump to the confirm screen, just as a QR code would function. (Provided all the fields are given)


  • Trigger a background sync to fire: adb shell cmd jobscheduler run -f com.tonchan 999


A mobile wallet where you own the keys, using TypeScript, JavaScript, and React Native




No packages published