TLDR; We showcase another feature of SafeKeep that is critical for mainstream adoption. Everyday users expects to see a "bank statement" style view of their Ethereum transactions with every transaction that changes their account balances. SafeKeep shows users this view and we explain why naive approaches miss crucial data.
Countdown #7: Understand mid-transaction balance changes
DeFi investors deserve better from their current suite of tools, and one of the aims of SafeKeep is to bring more transparency to DeFi as a whole. As more value is locked into DeFi, users will demand a better accounting of their digital assets, preferably in a simple and familiar UI. Luckily there is already a model for this from the traditional banking industry.
A usual bank statement looks like the following:
Tx Date | Tx Description | Debit | Credit | Outstanding Balance |
---|---|---|---|---|
T0 | – | - | – | $0.00 |
T1 | Safeway | $XX.00 | - | $YY.00 |
T2 | Wages | - | $YY.00 | $ZZ.00 |
But the composability of DeFi smart contracts creates a record-keeping nightmare. For example, a transaction between Alice and Bob could modify the balances of Charlie. A naive indexing strategy of simply showing transactions where your address appears in the “to” or the “from” column will miss such a transaction. This is because Charlie does not appear in the ”to” or “from” column.
SafeKeep, backed by Covalent's API, solves this visibility issue. With SafeKeep, DeFi investors are able to view every blockchain transaction affecting the balance to truly understand what is going on under the hood of their digital assets.
Block explorers such as Etherscan only allow a surface-level understanding of Ethereum transactions. The Covalent API allows SafeKeep to “unwrap” or “unroll” asset transactions entirely.
Check it out for yourself! Click below to get a deeper look at what’s going on with your DeFi assets.
Aside: The technical details
You can skip this section if you're not technical – SafeKeep hides this underlying complexity for you. SafeKeep, backed by Covalent's API uses a recursive algorithm to find all relevant transactions of interest. Here are three concrete examples where a naive indexing strategy doesn't work and misses crucial data:
Addresses in indexed and unindexed event logs – sometimes your address appears in event logs that a user will want visibility into. A good example is
Transfer
events that are emitted as part of a deeply interwound transaction.Addresses in call data – we are starting to see the use of
CALLDATA
more frequently these days with all of the Ethereum scaling technologies going live. We did a Hidden Gems podcast episode on how this works on Loopring – account balances are stored inCALLDATA
upon exit from the side-chain.In the future, Covalent will index side-chains as well and will be able to piece together these missing transactions.
What’s Next?
Stay tuned for our next post in the series and reason #6 why SafeKeep is the best record-keeping app for MakerDAO.