Coinwink Matrix

SPOILER ALERT: Reading this article in advance might impact your actual Coinwink Matrix experience and you’ll receive a lower level of satisfaction. Similarly, like someone spoils a movie for you by telling how it ends.

That is why we strongly suggest first to experience the Matrix, and then return here to read the article.

In your Coinwink account, switch from Classic to Matrix, and you’ll see how deep the rabbit hole goes.

The CSS Wonderland

During the last month, a lot of front-end updates were made for Coinwink.

The previous CSS styles file was a big mess. Started almost 4 years ago, many styles were inlined or randomly smashed together with !important overwrites and without a structure.

To fix such a chaotic styles file it takes quite a lot of time. These are little fixes but they are time-consuming, and when they’re done, it seems that nothing has changed. Why so?

Because the changes are behind-the-scenes. For example, a bigger invisible click/tap area for buttons. The user doesn’t see or think that there is a difference, but she feels it intuitively.

“What you know you can’t explain, but you feel it.”
― Morpheus

All together, these little changes create a slick and smooth experience and make the web-app feel more like a native app.

What are these app-like changes, you might ask?

  • Disable zooming on mobile devices
  • Disable text/element selection on mobile devices
  • Create bigger invisible touch areas for clickable elements
  • Separate :hover and :active states on desktop and mobile devices
  • Minimize flickering
  • App icon for mobile devices, web app manifest, theme color etc.
  • Create custom form elements (inputs, drop-downs, buttons, checkboxes, etc.) with consistent style across all browsers
  • Styling scrollbars

And a few more tweaks here and there. Some of these things are implemented “out of the box” in most CSS frameworks, but Coinwink is not using a framework because similar frameworks often result in generic feel or enforce a specific style, and also increase the size of the app more than the custom CSS.

Additionally, during the recent updates, significant structural front-end changes were made. When looking from the outside, they are also invisible.

The new structure allows us to easily change styles, build new front-end features, and we can now create themes.

Introducing the new Matrix theme

The first theme built on the new Coinwink front-end structure is the Matrix.

“The Matrix is everywhere. It is all around us. Even now, in this very room.”
― Morpheus

From the conceptual point of view, the Matrix is another dimension of reality, or a simulation (if the reality itself is not a simulation). The concept has deep meanings across different cultures, and this infuses the Matrix theme with the story and symbolism.

“You take the red pill—you stay in Wonderland, and I show you how deep the rabbit hole goes.”
― Morpheus

A switch to Coinwink Matrix theme is animated and not instant. It creates the effect of a transition into a different dimension.

To experience the Matrix, switch the theme in your Coinwink account.

Crypto Alert view
Portfolio view
Watchlist view

Similar to other recent updates, Coinwink Matrix theme is extremely lightweight. When activated, it adds only around 20KB of size.

It’s the first theme – a showcase of new possibilities. The dynamic background is now probably too active, so in the near future, it will be possible to turn it off or make it less prominent.

More themes are planned for the future.

Above are presented Coinwink app mobile views. Coinwink works equally well on both desktop and mobile devices.

The newest source code will be available soon on our GitHub.

As usual, your feedback is appreciated!

Let us know what do you think about the new Matrix theme? What other themes and features you’d like to see in the future?


Crypto alerts, watchlist and portfolio tracking app

The post Coinwink Matrix appeared first on Coinwink Blog.

How can signing and sending transactions take place within Meta Mask if the user is not running a local node?

I have been trying to wrap my head around this for a while to no avail, so please help me understand. I’ve created several dapps and smart contracts in the past using web3.js, ethers.js,, etc. What I’m trying to do is create a C++ desktop application that communicates on the Ethereum network. I would::Listen

I have been trying to wrap my head around this for a while to no avail, so please help me understand.

I’ve created several dapps and smart contracts in the past using web3.js, ethers.js,, etc. What I’m trying to do is create a C++ desktop application that communicates on the Ethereum network. I would like users to be able to send and receive ETH and interact with smart contracts via this application. Although there are a couple ways to execute Python and Javascript code from within C++, it is very hackish and not something I would ideally want for my project. I have already investigated how this would work, and while it might be sufficient for what I’m trying to do, surely there must be a way to do this purely in C++.

So far, I have been able to use curl to make RPC calls to Infura to get account balances, and that works perfectly. But according to this answer, signing and sending transactions purely through Infura is impossible. I have done a lot of research to try and figure this out, and I think I must not be understanding something on a conceptual level about how signing a transaction actually works.

Ordinarily, the user would hold their ETH in a Meta Mask wallet (or something similar). Then the front-end code would either use web3.js or to ask Meta Mask to sign a transaction or send ETH to a smart contract. I assume this works because Meta Mask has access to the keystore file from which it can derive the private key. Meta Mask is just a browser extension, and so that means the private key never leaves the user’s computer. That, and because the project is open-source, is what gives users the trust to use it to store their funds. Users know for sure that their private key isn’t being sent somewhere else to be stolen. So the signing is done locally, and then the transaction hash is sent along with the transaction to Infura, which then carries out the transaction.

However, isn’t there a problem here? Looking at this answer again, it implies that you cannot sign a transaction without spinning up a local Ethereum node such as geth. Obviously, Meta Mask is not doing that. I know I’m not running an Ethereum node because I still have plenty of hard drive space. So how exactly is Meta Mask signing the transaction? I have the same exact question regarding, because I am able to do the exact same thing using it, even though I am not running a local node. And this answer adds to my confusion, as it indicates that is doing the exact same thing that Meta Mask is doing, both of which connect to the blockchain using Infura. Why then, is able to sign a transaction, when a direct RPC call to Infura’s API in C++ is not able to do so?

Furthermore, the Infura docs do list "eth_signTransaction" as an endpoint but it does not take a private key as a parameter. That’s fine, but then this is the code I call in signed_tx = web3.eth.account.sign_transaction(transaction, private_key)

So requires the private key in order to sign the transaction (where the transaction is just a JSON object and the private key is a string). So what goes on inside of I’ve tried to look but the code is confusing. Despite Meta Mask and being open source, there’s no easy way to tell what is going on inside of that code to actually sign the transaction. Does this mean I basically need to create my own version of (web3.cpp?) in order to accomplish my goal?

The only thing I can think of is that somehow it must be possible to make an RPC call to Infura’s API in order to sign a transaction. But that doesn’t make any sense, because then you are exposing the private key, which is exactly why Infura would disable that kind of call… So Infura disables it, which means and Meta Mask shouldn’t be able to call it, but they can… But if they’re calling a function that exposes private keys, why would anyone use these services? …It’s an endless back-and-forth of not understanding what is going on.

Possibly the simplest way to phrase this question: How can the signing and sending of transactions take place within Meta Mask if the user is not running a local node?

My goal is to create an application that users trust they can use to store their funds. Ideally, it would probably be best to connect it to Meta Mask, but I don’t know how you would go about connecting a desktop app to a browser extension. So the alternative is to just store the private keys in the desktop app (on the user’s computer) almost like it’s its own wallet, and then make the app open-source so that people can trust what it does with the keystore file. Is this the right approach, or am I missing something here as well?

Coinwink Matrix

Shopping cart
There are no products in the cart!
Continue shopping