Tracking what you actually spent
My fee log has around four hundred rows in it. The first nine months of those rows are useless, and I am the one who made them that way.
I logged every fee as a token amount. 0.0041 of this, 0.13 of that, tidy and consistent and completely worthless, because I never wrote down what those amounts were worth in dollars on the day I paid them.
I cannot look it up now. Not to a standard I would defend, and definitely not to a standard I would hand an accountant.
So the front third of my own record is decoration.
The guess always leans the same way
Ask anybody doing this how it is going and the answer comes back positive. They are not being dishonest. Memory files the two halves of the sum in different places.
Claims are events. One lands, you tell a friend, you can name the month. It gets stored as a story.
Fees are not events. A dollar sixty here, four dollars there, hundreds of times, each one too small at the moment it leaves to be worth writing down. Nothing stores them at all.
Then there are the hours, which nobody in this space has ever quoted me a figure for.
Put those together and everyone’s intuition tilts the same way, every time.
Why I bother with any of this
I run mobile proxy lines and a rack of Android phones as a business. Every line has a cost sheet behind it: roughly ten dollars a month for the SIM, about a dollar fifty a month in modem depreciation, a share of a hundred and fifty dollar powered hub that carries thirty ports, a share of a two hundred dollar machine. That arithmetic is the only reason I know a line runs at 70 to 75 percent gross margin instead of below cost.
None of that is discipline on my part. An invoice arrives every month whether I want it to or not.
On chain, nothing arrives. The money leaves in fragments, from a dozen addresses, at hours when you had stopped paying attention, and no document anywhere adds it up for you. That gap is the entire difference between a business I can price and a hobby I could not.
Six columns, nothing clever
A record that works has six fields per action:
- The date. The actual day, because value moves inside a week.
- The wallet, under whatever name you genuinely use for it.
- The network, because the same action costs different money on different chains and comparing them is most of the point.
- What it was for, in your own words, five or six of them.
- The fee, and the token you paid it in.
- What that fee was worth in dollars at the moment you paid it.
That is it. No categories, no tags, no schema. Six columns in a spreadsheet.
The column that makes the other five work
The last one is the field people leave out, and leaving it out quietly destroys everything above it.
Here is the failure in practice. You bridge something during a busy hour and the fee comes out of your native token balance. You write down the token amount, because that is what the wallet shows you. Eleven months later you open the sheet and look at that row.
Was that fee seven dollars or twenty two? The sheet does not know. Neither do you.
The token you pay fees in moves in price, which is the one thing about it you can count on. A fee stored as a quantity is a number waiting for a price you no longer have access to.
Backfilling it honestly is hard. You need the price of a specific token at a specific hour on a specific day, and the free sources give you a daily close, while the ones with real intraday history want a subscription. Writing the dollar figure at the moment you pay takes about four seconds.
What the explorer will not tell you
People assume the block explorer is the record. It gets you halfway and then stops.
An explorer will give you every transaction ever sent from an address, timestamped, with the fee and the status attached. That part is complete and it is free. What it cannot give you is why any of it happened.
Take two transactions that look identical on screen: a transfer out of wallet 12 to wallet 19, and a transfer out of wallet 12 to somebody else entirely. One is you moving your own money around. The other is a disposal. The chain shows you the same row for both.
Or a revoke sweep, which on the explorer is a series of small contract calls with no obvious theme. In four months you will be looking at those hashes with no idea what you were cleaning up.
Intent exists nowhere on chain. It has to come from you, and it has to be captured while you still remember, which in practice means the same week.
Two numbers that settle most arguments
There is a much cruder version of the sum, worth keeping alongside the detailed log.
What went in from outside, and what came back out to outside.
Money that arrived from a bank or an exchange purchase is in. Money that left back to a bank and became spendable is out. Everything between those points is internal movement.
Internal movement generates the feeling of productivity and none of the answer. Thirty wallets shuffling value between themselves at three dollars a hop feels like a busy month and moves the top line backwards.
Most people have fewer than twenty genuine in and out events a year. Keep them on their own tab. They are the only rows you cannot get wrong later.
The tool you will open beats the tool that is better
Real software exists for this, and at five or ten wallets a lot of it works well.
I have started with the sophisticated option twice and abandoned it twice, inside a month both times. It wanted connecting, then confirming, then categorising, and it turned a fifteen minute weekly job into an evening I kept postponing.
What survived is a spreadsheet opened on a Sunday, filled in from the week’s transactions while I can still remember what any of them were for. Fifteen minutes, and some weeks two.
The better tool wins on every measure except the one that decides the outcome, which is whether it gets opened.
Draw a line at today
The instinct, once you decide to do this, is to go back and capture the last two years first. Do not. You will spend a fortnight on it and the values you assign will be guesses wearing the costume of data.
Start the log today and let the fog keep the rest. Within three months you have enough real rows to see what one wallet costs you per month on each chain you use, which is the number you actually wanted.
The column I still do not keep
There is a seventh field I have never maintained, and it is time.
One evening of this contains reading a thread to work out whether something is worth doing, bridging, waiting for the bridge, confirming it arrived, doing the actual thing, then checking again the next morning. Three hours a week is a conservative estimate for anybody active, and that is a hundred and fifty hours a year.
I am not going to price your hour. What I will say is that writing any number at all into that box changes the arithmetic on the rest of the sheet, sometimes completely, and I suspect that is why almost nobody writes one. My own stated reason is that hours are awkward to measure. The honest reason is that I have a rough idea what the total would say.
The tax angle, stated carefully
I am not an accountant and none of this is tax advice.
The rules differ by country, and they move. How a claim is treated at the moment you receive it, whether swapping one token for another is an event, what happens when value moves between two wallets you both own: all of that varies, and people who handle it professionally get paid to keep current on it.
What I can say without going near advice is narrower. Somebody with no records cannot comply with a rule even when they want to. If the correct answer turns out to be that nothing is owed, you still need to be able to show the working.
I once looked at a spreadsheet somebody had built to reconstruct a year of activity. Sixty rows, all labelled “gas”, no dates on half of them, no wallet attribution. It had taken him weeks and could not answer one question worth asking.
What people find when they finally look
Here is the part that stops people starting.
Most who begin tracking this properly discover the activity was underwater. The fees were larger than remembered, the claims smaller, and the hours were never in the calculation.
That is information, and it is worth having. It does not make you a mug, and it is not an argument for having stayed in the dark.
A number you dislike can be acted on. A feeling cannot. Once the log is broken down by network and by purpose, you can see which lane paid for itself and which one has been quietly billing you for a year, and then you can put the wallet count where it earns.
The people who find they are ahead get the more useful version of the same answer, because it is almost never spread evenly. One or two things carried the entire result and everything else was noise. Knowing which is which requires having written it down while it was happening.
If you want the rest of how I run this side of things, it is all on the home page.
Get new guides and videos first — join the Telegram channel.