In Data We Trust

How crypto can beat the UX of centralized fintech

Matt Marshall
Argent
3 min readDec 3, 2019

--

When we started Argent we were clear about what we wanted to achieve: we want people to not only control their finances and their financial security, but own it entirely. We aim to take advantage of all the benefits of decentralisation. We will not build a product that would introduce additional barriers to entry or require vast amounts of additional knowledge to bridge the gap between traditional finance and the blockchain.

We’re competing in a world where user experience is everything, and blockchain is no exception.

There are inherent complexities of dealing with any blockchain. Fluctuating transaction execution times, failing transactions, out-of-sync nodes. We’re dealing with fundamental technical complexities that we have spent two decades abstracting away from the user in the web 2.0 world.

Users have high expectations of financial transactions: reliability, speed, security from their bank. These expectations must all be met or exceeded with a blockchain product.

We’re offering the future to our users. It must be better than the present.

Argent X Compound: Earning interest has never been so easy

To build our mobile apps we decided the simplest way to stay true to the blockchain was to follow an event-processing model. We read events (via web3) generated from Ethereum transactions and use this to construct a view (and activity history) of an Argent wallet.

A brief security example (using Argent Guardians):

  • 1st December — Guardian A added
  • 2nd December — Guardian A removed
  • 3rd December — Guardian A added

From this flow of events we can show you the history, a full account of your security posture. We also know that because Guardian A is currently a Guardian, they can help to approve large transfers, lock or recover your wallet.

The benefits:

We can default Argent to a different Web3 proxy, or allow the user to choose their own (even a locally hosted Ethereum node over wifi).

A user can recreate their view of their Argent wallet on-demand, from the blockchain only. This may be for a product reason (such as the user recovering their wallet to a new device) or for a technical reason (device data gets corrupted or we wish to change storage mechanism).

The data processing pipeline is simple and linear. We’re dealing with several complex features (delayed transfers, adding guardians, locking wallets, etc) however they all follow the same architectural flow.

The drawback:

Data growth. As a user interacts more with their Argent wallet, recreating their activity will take longer and longer. This is not currently an issue although it is on our radar, and we have several mitigating strategies available.

What else?

We also have our own complementary backend services to enhance the user experience. These exist to cache non-essential data where reading from the blockchain is inefficient. Examples include:

  • Enriching the user interface by attaching real-world dates to transactions.
  • Providing a communication channel between wallet owners and their Guardians. We use this for activities such as approving (signing) a large transfer.

We also maintain our own “transaction relayer” for sending data to the blockchain. This provides stability by sending transactions at different gas prices (based on network demand). We also do this to subsidise the transaction “gas” fee for our users. A fallback is available in our mobile apps (Emergency Kit). This is a very interesting piece of infrastructure, which deserves its own article — look out for it in the future!

Thanks for reading. Follow us and share your feedback at: https://twitter.com/argentHQ

--

--

Matt Marshall
Argent
Writer for

Senior iOS Engineer @ Argent. CISSP qualified.