From Newbie to Core Contributor w/ ExtraHash

Here, you can see the knuckles lifting gently off the ground as a user becomes a dev

It’s been a while since we’ve interviewed a member of the team and as we just added a new Core Contributor last week it just felt right to pick back up on the article series. Enjoy!

RS: ExtraHash, thanks for taking this interview! You’ve been in the TRTL community for a few years now, and over this time we’ve watched you grow from a normal user to the developer of our default GUI wallet, and now a core dev, in fact! At the end of this interview, I hope the readers get to know you and your projects as well as the rest of us have, and maybe if we’re lucky it will bring people a little bit closer to one of the people that makes the tools they use daily.

So to take it from the top, how did you find TRTL? Do you remember what brought you here initially?

EH: I found TRTL very early on, within the first month of launch, through a thread someone had posted (where else) on /biz/. It was my first foray into getting involved into a fledgling coin, and let’s just say I didn’t really know what I was getting into. In fact, at the time, I had very little background knowledge of blockchain in general. It was a great experience, and before long I was up to speed on alot of basic blockhain concepts due to the helpful and educational nature of the community.

RS: How long would you say you were a regular user before you got the idea you wanted to be a dev? What was it that made that change?

EH: I didn’t decide to take steps toward becoming a developer until I had already been in the community as a regular user for a bit over a year, sometime in February 2019. I’d say there were two major events that spurred my transformation:

The first event was a video that you actually posted in #general, a movie on open source software and Linux called Revolution OS. It really struck a chord with me. Watching that video made me realize what open source actually was: it’s more than just opening your source code for others to inspect, it’s a revolution and community movement based around allowing others to use and modify software and change it as they see fit. This understanding was eye opening for me, and gave me a bit of a different perspective on TurtleCoin and our community.

The second event was the event that actually spurred me to start writing code. Madk had a bot in the market server that was able to give statistics on the network and market: price, hashrate, and so on. He made some changes to the bot that I did not like. So, instead of asking madk to revert the changes, I set out to write my own bot to take its place. That bot became my first ever coding project, and is still running in the market server to this day.

RS: That’s cool, and I’m not sure many people knew that about you. What brought you from doing a chat bot to wanting to design the now default GUI wallet for TRTL?

EH: The chatbot was written in JavaScript, which I had some (but not much) experience with before, mostly simple scripts on web pages and things like that. I set out to learn as much about JavaScript as I could, thinking it would be best for me to at least become competent with one language before attempting to learn others. There were a few other projects in between which I used to further hone my JS skills, but soon I began to want to contribute back to the TurtleCoin community in a meaningful way.

At this point, I was also following TurtleCoin’s development very closely, and one thing really piqued my interest: walletbackend-js. Zpalm had written a really nicely done native JavaScript wallet backend implementation, but no-one was yet developing a new wallet with it. Also, the current GUI wallet was fairly clunky and seemed to be abandoned by the developer. I saw a good opportunity to actually start a project that could improve the end user’s experience with using the network, and from that came Proton, my baby and GUI wallet which i’ve crafted for the community.

RS: What does walletbackend-js do for you, or I guess, for Proton?

EH: Walletbackend-js provides a way to interface with a wallet and the network in native JavaScript, which allows you to do things like write a wallet application or turtle-powered web application. It can run in a lot of places, including directly in a browser. With the old electron-based GUI wallet, there was always some “lag” to the user experience because it was just a graphical front-end wrapping the turtle-service executable. Proton, however, is a 100% native JS application, with no messy child processes.

RS: Is there a vision behind what you’re trying to create? Has becoming the default GUI wallet changed how you feel about the trajectory of Proton?

EH: Well, to be honest, the intention was always to become the default GUI wallet. Eventually I’d like to add multi-coin support for some of the other bigger coins, I think it’d be neat to have a fully open source client-side multi-coin wallet. However, for now, I’m just focused on improving Proton and making it the best possible experience for users on the TurtleCoin network. If anyone would like to see specific features implemented, please feel free to make an issue on the GitHub page with the feature request.

Shows you node fee info too, which is handy

RS: What are some features you’re working on currently that we will be seeing soon that maybe some aspiring developers reading this can help with? Do you have any Good First Issues?

EH: I’m currently working on a search function to search any information locally in the wallet. It’ll match contacts in the new address-book that will be releasing next version, as well as hashes stored within the wallet such as tx hashes and payment IDs.

The issue list is looking rather slim at the moment, but I am having one issue with a module called react-select I’m using on the send page for the address input: you can’t access the context menu to paste via mouse click because the real input width seems to automatically resize based on input size. This would probably be a good one to try and tackle.

RS: For anybody who’s reading this who may want to help, can you touch briefly on the different parts of the tech stack that Proton makes use of? It uses nodejs, what else?

EH: Sure. At its root, yes, it’s a nodejs application. It’s also making use of electron, a framework for developing with web-based technologies on the desktop, and react, a front-end framework for web applications. It’s also making use of redux, react router, and webpack on the web-application side. We’re using bulma for the CSS. Of course as we’ve already mentioned, the TurtleCoin network interaction is powered by wallet-backend-js. I’m also using several tools to make up the development environment like eslint and prettier for code linting and formatting, and react-hot-loader for hot refresh in dev mode.

RS: With a list of technologies like that you’re bound to snag someone’s attention! Extra, thanks for this interview. Is there something we didn’t cover that you want to share with everyone?

EH: Thanks for having me! I’d just like to say thanks again to the TurtleCoin community and especially the developers that have helped me along my path to becoming a dev; particularly zpalm, ibmcd, mary, rock, fexra, and anybody else that’s helped me out along the way. Because of you all I’ve discovered something new that I’m really passionate about and I see myself doing for the rest of my life. I also look forward to getting more actively involved in core development and leaving my own mark on the core TurtleCoin codebase.

Check out ExtraHash’s handywork in the latest release of Proton GUI Wallet at

If you’re a beginner developer or want to learn more and help out, check here for some good first issues to get started with

Weekly Update

This Week In TurtleCoin (July 23, 2019)

This guy’s hairline is better than mine and that is perfectly okay.

Developer Updates

This is a place where anybody in our community can submit a post about the TRTL project they’re working on. It’s a great way to attract helpers for your project and show people what to keep an eye out for. We encourage you to show works in progress as well as finished products, as we’re happy to see them all and it shows that we’re an active community. To submit your post, click this link


TurtleAds is an ad platform for TurtleCoin. You can advertise your node, website or anything else and pay with TRTL. Then people who own websites can embed your ads and will get paid for it. The project is still in a very early development phase and will launch in the next 2 to 3 months..


Sabo, Revolutionary (Pictured) surrounded by public node earnings

Public Node

I have just set up a node for a project I am working on, meanwhile feel free to connect to this public node.

Sabo (Revolutionary)

Hey kid, you ever had a TPN? *opens coat*

TurtleCoin public node setup guide

For when you want to run an awesome public node but are on a very tight budget.

This guide covers the entire setup and build of the TurtleCoin public node as well as running it. It also covers the setting up of the front page for the public node. This guide was tested with various versions of Ubuntu using Google Cloud virtual machines with the aim of ultimate cost effectiveness and ease of use..


Crypto lib’s just purrin’ like a cat


I’ve performed a few small updates to the TurtleCoin-Crypto project that helps to make life a bit easier.

1) Javascript builds (.js and WASM) now build to single files to make it easier to import for packing.

2) Enabled a handful of optimizations that reduce the Javascript & WASM build file sizes significantly and results in slightly faster code execution.

3) Added Node v12 support

4) Added support for gcc 4.x versions for those of us running ancient build systems (dropped requirement to c++11)



A bit of work was done on this package to make it easier to work with TurtleCoin data:

1) Added support for Node v12 (thanks to TurtleCoin-Crypto updates)

2) General code cleanup

3) Added exports for the underlying Crypto module (in the event you want to get your hands dirty)

4) Added export for new Block object that allows for deserializing and serializing blocks to/from blobs. It also allows for the calculation of the block id (hash) as well as the PoW hash.

5) Added export for new Transaction object that allows for deserializing and serializing transactions to/from blobs. Also provides a property for the transaction prefix hash as well as the full transaction hash (when loaded with signatures) and supports version 2 transactions.

Next up, I’ll be working on the necessary transformations for handling block templates for mining pools.


If you write about your backend and don’t include a pic, this is what happens.


Lots more updates to the JS wallet backend this week. These have mainly been fueled by extra’s new GUI wallet, proton, finding bugs and requesting features – check if out if you haven’t already.

Updates include…

  • Faster syncing in some environments
  • Fix bug when sending transactions to self
  • Fix bug with locked balance not been correctly updated
  • rewind() function, and daemon connection status events
  • Faster cryptography for those in a browser env thanks to turtlecoin-utils upgrade

If you didn’t know already, this library lets you create, import, sync and send transactions all from JavaScript. A lot of people have started building applications on top of it, and I’m excited to see what more can be built.

Check it out:



A few weeks ago I promised an update to TonChan, unfortunately, that slipped a little. I got distracted upgrading React Native for 64 bit builds which caused me to spend a lot of time fixing the build for the newer library.

That is all done now, and I’ve decided to add a few more features than planned to the release.

Currently implemented:

  • 64 bit support
  • Faster syncing
  • Auto optimize support
  • Better memory management
  • Icons that fit better with Android style
  • Faster transaction creation
  • Tons of bug fixes

And before a release, I also want to improve the background syncing process, and possibly add transaction filtering and fingerprint unlocking.

Hopefully these won’t take so long to implement.


Good First Issues

Good First Issues are tickets that are marked as ‘easy wins’ for new developers. If you want to be a TurtleCoin Developer, these are great tasks to start with!

Daemon+WalletBackend timestamp adjustments
The current /getwalletsyncdata rounds a timestamp to midnight. Depending on what time of the day you start a fresh wallet, you may have no blocks to grab (we need to roll back a bit more than we currently do with the timestamp adjustment), or too many (since it’s rounding to midnight which is quite far away).

Remove no longer relevant asserts
Since pretty much everyone runs the daemon in release mode, instead of debug mode, we’ve ended up where we have a number of asserts which constantly trigger, due to altered/moved/rewritten sections of code.

QueryBlocksDetailed does not populate transaction extra “raw” property in response
.transactions[i].extra.raw is not populated in the code as it should be.

Pay With TRTL

In the Discord we have a channel called #Merchandise where people can post things you can buy with TRTL. To view items for sale, check the pinned posts in that channel. These are a few of the items from this week.

mikeykones’s dad hats

TURTLECOIN DAD HATS 🧢 199k TRTL free shipping anywhere in the US, 299k TRTL shipped anywhere else in the world!

Red, black, grey and cream are available currently

Contact @MikeyKones in discord for details!

Free Advertising

This is a spot to spam anything TurtleCoin related that you would like to advertise, it’s free to put an ad in the roundup.

  • Hi 🙂 I’m working on a new game for Turtlecoin. It’s a web based card game where you can collect the emojis from the discord and then fight other players using them. The game will launch in the next 10 days, if you want to stay informed about updates join my discord server. Hope to see you there 🙂
  • I updated my node to 14.6!

Shoutouts & Thanks

This is the place to mention someone in the community who has done something nice or deserves recognition.

  • SoreGums – “stay gone” your game is cool, – I like the graphics and UI, looking forward to see what you do next 🙂
  • – Thanks again to the community! As always! You guys rock 🙂
  • Japakar King of the Ozarks – Youre all welcome into my Ozark forest. There is magical fairies to eat, they taste like frogs.
  • Dungeon Master – Thanks to all who were part of the adventure this week, let’s shoot for sometime between Friday and Sunday
  • Rock – Shouts out to all the comedians with heart out there crackin jokes to two man crowds
Image result for ballin