Steem Witness Tax Compliance & A Free Tool for All Witnesses 🏛️⛏️
First Things First: I've Officially Registered as a Business
Running SteemFront — a full social media platform on the Steem blockchain — is not a hobby project. It's a business. And I'm treating it like one.
I've been active in the Steem community for a while — and I previously ran a monetized Facebook account with income that I reported to the tax authorities. Crypto is no different for me.
I have officially registered SteemFront as a commercial business (Gewerbeanmeldung) in Germany. This means:
✅ My witness block rewards are declared as taxable income
✅ All platform revenues are reported to the Finanzamt (German tax authority)
✅ Server costs, development expenses, and infrastructure are filed as business expenses
✅ I operate with full DSA and GDPR compliance
I know — taxes on crypto are not the most exciting topic. But when you're running a social media platform from Germany with real users, there's no gray area. I'm going the safe route. Full stop.
What Does a Witness Actually Earn?
Not a fortune — but real income that needs to be properly documented. Top-20 witnesses naturally earn more, reflecting their vote count and rank.
My personal goal is not to reach the top 20. Whatever rank I'm at — I will focus on strengthening this community and developing SteemFront further. The rank is secondary.
The Tax Documentation Problem
Even with modest amounts — tax authorities want the exchange rate on the exact day of receipt, not a yearly average. For a full year that's 365 individual valuations to document.
I had to solve this for my own tax filing. And once the tool was done — why not make it available to every witness on Steem?
Technical Note: VESTS ≠ SP
The Steem blockchain stores block rewards internally not in SP, but in VESTS. The correct conversion formula is:
SP = VESTS × (total_vesting_fund_steem ÷ total_vesting_shares)
The current ratio is approximately 1,000,000 VESTS (1 MVESTS) = 611 SP. That means roughly 1,637 VESTS = 1 SP. Anyone who simply divides VESTS by 1,000,000 and treats the result as SP is off by a factor of ~611. The tool fetches this ratio live from the blockchain and displays it directly.
The Tool: Steem Witness Tracker 🛠️
👉 https://github.com/greece-lover/witness-tracker
A single HTML file — open in any browser, no server, no account, no cloud.
Features:
Daily sync: one click to record block rewards + current STEEM rate
Retroactive loading for any date range — do it month by month, not a full year at once, otherwise the blockchain scan takes a long time
Monthly CSV export for your accountant or tax authority
10 currencies (EUR, USD, GBP, JPY, KRW, CNY, BRL, RUB, TRY, BTC)
12 languages
100% local — no data leaves your browser
How the Tax Documentation Works
Taxable income = SP received × STEEM closing rate on the day of receipt
The tool documents exactly this — per day, at the actual market rate, exportable as CSV. How tax authorities verify this? 🙂 — that's their problem. My job is to have the documentation ready, correct and complete.
What applies in your country specifically — consult a local tax advisor. The tool gives you the foundation.
Why I'm Sharing This
We're building something real here. Any witness earning income — however small — should be able to document it properly. This tool makes that easy.
@greece-lover | SteemFront — Social Media on the Steem Blockchain
steemfront.app | A witness vote would be very much appreciated 🙏
#witness #steem #steemfront #tax #transparency #tools #blockchain
Veröffentlicht mit SteemFront
Veröffentlicht mit SteemFront
Veröffentlicht mit SteemFront
Veröffentlicht mit SteemFront

Woher hast du denn die Info? KI? Das ist schon lange veraltet. Im Moment sind wir bei rund 610 STEEM per MVESTS, also rund 1637 VESTS sind 1 SP.
Irgendwie ist da die falsche Zahl in die Zwischenablage geraten. Ich ändere das gleich.
root@ubuntu:/opt/steemsnap# curl -s -X POST https://api.steemit.com -d '{"jsonrpc":"2.0","method":"condenser_api.get_dynamic_global_properties","params":[],"id":1}' | python3 -c "
import sys,json
r=json.load(sys.stdin)['result']
total_vesting = float(r['total_vesting_shares'].split()[0])
total_fund = float(r['total_vesting_fund_steem'].split()[0])
ratio = total_vesting / total_fund
steem_per_mvests = total_fund / (total_vesting / 1000000)
print('total_vesting_shares:', r['total_vesting_shares'])
print('total_vesting_fund_steem:', r['total_vesting_fund_steem'])
print()
print(f'1 MVESTS = {steem_per_mvests:.3f} STEEM')
print(f'1 SP = {ratio:.3f} VESTS')
print(f'Oder: {ratio/1000:.6f} KVESTS = 1 SP')
"
total_vesting_shares: 322972494323.931103 VESTS
total_vesting_fund_steem: 197287480.750 STEEM
1 MVESTS = 610.849 STEEM
1 SP = 1637.065 VESTS
Oder: 1.637065 KVESTS = 1 SP