Tutorial · about 15 minutes

Track your staking returns in a spreadsheet

Load your address history from Explorer 2.0 into a free template, and see what your Divi has earned so far and what it could grow to.

No account, wallet password or private key needed. You only use your public address.

What you will end up with

A spreadsheet with four tabs, built from the transactions of one Divi address:

Throughout this tutorial we use the address DHfobp6GtP7gTfLPPpPt5wQejsXurmAgtL as the example. At the time of writing it showed:

Balance
6,108,753
Own deposits
5,595,481
Staking rewards
513,272
Stakes since Feb 2026
1,064
Yield, last 30 days
≈ 11.8 %

All amounts are in DIVI. Your own numbers will be different, and the template recalculates everything as soon as your history is loaded.


1Open your address in Explorer 2.0

Paste your address in, or press Copy to copy this example one and follow along with the tutorial. The links below update to match.

Go to services.divi.domains/explorer2 (it opens in a new tab, so this tutorial stays open), paste your Divi address into the search box and press Enter.

The Explorer 2.0 home page with a Divi address typed into the search box.
The search box accepts an address, a transaction ID, a block hash or a block height.

The address page opens. The cards at the top show the address's balances. Write down the Vault Balance (or Balance for an address without a staking vault). You will use it in step 6 to check the spreadsheet.

The address page showing the liquid balance, vault balance, net deposited, rewards earned and total balance cards, with the Transactions and Staking Intelligence tabs below.
The example address: a staking vault of 6,109,168 DIVI, of which 5,595,481 DIVI was net deposited and 513,687 DIVI was earned from staking. Below the cards, the Transactions tab holds the history and the Staking Intelligence tab shows the yield and a projection.
Why there is no "Total Received" on a vault

A vault holds its balance as many separate chunks of coins. Each stake spends one chunk and sends it straight back with the reward added, so that chunk counts as "received" again every time it stakes. Over more than a thousand stakes this pushes the explorer's raw Total Received to 22.9 million DIVI here, far more than the 6.1 million balance, and the extra is not money you earned. So on a vault address the explorer shows Net Deposited (the coins you put in, less what you sent away) and Rewards Earned (the reward part of each stake) instead. They are the same two figures the spreadsheet works out.

Bookmark it

The address page has its own link, for example services.divi.domains/explorer2/address/DHfobp6GtP7gTfLPPpPt5wQejsXurmAgtL. Bookmark it so you can come back next month without searching.

2Your history as a CSV

The spreadsheet reads your history as a CSV file: one row per transaction. You can get it two ways, and both give exactly the same file.

A link. Every address has its own CSV link. Put your address in place of the example:

https://services.divi.domains/api/rpc/csv/DHfobp6GtP7gTfLPPpPt5wQejsXurmAgtL.csv

Google Sheets can read this link by itself, so with Sheets you do not need to download anything (step 5 shows how). Opened in a browser, the same link shows or downloads the file.

The CSV button. On the address page, scroll down to Transaction History. At the top right of that box is a CSV button.

The Transaction History box with the CSV button highlighted.
The CSV button exports the whole history, not just the page you are looking at.

Click it. The button turns into a counter while the explorer collects every transaction, for example 90/1621. A long history takes a few minutes; keep the tab open until your browser saves the file.

The CSV button showing export progress as a counter.
The counter shows how many transactions have been collected so far.

You get a file named after your address, ending in .csv, in your Downloads folder. It has one row per transaction and these columns:

ColumnWhat it holds
DateWhen the transaction was in a block, in UTC
TypeSTAKE for a staking reward, IN for coins sent to you, OUT for coins you sent, SELF for a transaction from the address to itself
Amount (DIVI)The change to your balance. For a stake, only the reward, not the re-staked coins
Other AddressWho sent or received the coins, where there is one
TxID, Block HashLinks back to the explorer if you want to look a row up

To check what a stake looks like, switch the history to the Ledger view. Each stake shows the reward it added, here about 415 DIVI per stake.

The ledger view of the transaction history with STAKE rows of about 415 DIVI.
The ledger view shows the same amounts that go into the CSV.
Times are in UTC

The explorer page shows times in your own time zone; the CSV uses UTC. A stake shown at 11:13 AM in New York is 15:13 in the file. It is the same transaction.

3Get the template

Download the spreadsheet template. It already contains the example address's history, so you can look around before loading your own.

Download the template .xlsx · 190 KB

The file uses only ordinary spreadsheet formulas, with no macros, scripts or add-ons. The only thing that ever reaches the internet is the IMPORTDATA formula you add yourself in step 5, and it only fetches the public transaction list of the address you give it.

Prefer Excel, Numbers or LibreOffice?

The same file opens there directly. Steps 4 and 5 are written for Google Sheets, because IMPORTDATA is a Google Sheets function. Excel for Windows and LibreOffice Calc can also keep your history up to date by themselves; the other programs load a downloaded CSV. Excel, Microsoft 365, Numbers and Pages below shows how in each one.

4Open it in Google Sheets

You need a free Google account.

  1. Go to sheets.new. This opens a new, empty spreadsheet in your Google Drive, in a new tab.
  2. Choose File → Import, open the Upload tab and select the template you downloaded.
  3. Under Import location choose Replace spreadsheet, then click Import data.
  4. Give the spreadsheet a name at the top left, for example "Divi staking".

You now see the four tabs at the bottom: Summary, Monthly, Projection and Transactions.

Numbers or dates look wrong?

Google Sheets reads numbers and dates according to the spreadsheet's locale. The template and the CSV use a dot for decimals and YYYY-MM-DD dates. If you live where a comma is the decimal mark, open File → Settings, set Locale to United States, and click Save settings. This changes only this spreadsheet.

5Load your own history

Replace the example transactions with yours. Option A lets Google Sheets fetch them by itself and keeps them up to date; option B uploads a CSV file you downloaded.

Option A: let Google Sheets fetch your history

  1. On the Summary tab, type your Divi address into the yellow cell next to Your Divi address (cell B21).
  2. Click the Transactions tab.
  3. Select everything with Ctrl+A (⌘+A on a Mac) and press Delete. This empties the cells but keeps the tab, so the formulas on the other tabs keep pointing at it.
  4. Click cell A1, paste this formula and press Enter:
=IMPORTDATA("https://services.divi.domains/api/rpc/csv/"&TRIM(Summary!B21)&".csv")

The first time, Google Sheets shows a yellow bar above the grid: Warning: Some formulas are trying to send and receive data from external parties. Click Allow access on that bar. Until you do, A1 shows an error (usually #REF!). Google asks only once per spreadsheet.

After a few seconds (up to about ten for a long history) the tab fills with your transactions. From now on Google Sheets fetches the list again by itself, about once an hour.

An error instead of transactions?

#REF! with the note You must allow access to fetch data from external URLs: click Allow access on the yellow bar at the top. Could not fetch URL: check the address in B21 for a typo. Array result was not expanded: something is left on the Transactions tab; empty it again and keep only the formula in A1.

Option B: upload a CSV file

  1. Click the Transactions tab.
  2. Select everything with Ctrl+A (⌘+A on a Mac) and press Delete. This empties the cells but keeps the tab, so the formulas on the other tabs keep pointing at it.
  3. Click cell A1.
  4. Choose File → Import → Upload and select the CSV you downloaded in step 2.
  5. Under Import location choose Replace data at selected cell. Leave the separator on Detect automatically and click Import data.
The Google Sheets Import file dialog on the Upload tab, with a Browse button to pick the CSV.
File → Import, Upload tab. Drag the CSV in or click Browse.
Do not delete or rename the Transactions tab

Every other tab reads from it by name. If you put your history on a new tab (for example with "Insert new sheet" in option B), the new tab is ignored and you keep seeing the example numbers.

The first row must be the header Date, Type, Amount (DIVI), … and the data starts in row 2. Switch to the Summary tab: it has already recalculated.

6Check the numbers against the explorer

On the Summary tab, find the yellow cell under Check against the explorer (cell B17). Type the balance you wrote down in step 1, without thousands separators, for example 6108753.

The Result row below it tells you whether the export is complete:

ResultMeaning
OK: matches the explorerThe spreadsheet balance is within 1 DIVI of the explorer. Every number on the other tabs can be trusted.
MISMATCH: load the transactions againSome transactions are missing, usually because the address has staked since the list was loaded. With option A, wait an hour and check again: the server keeps a copy of each list for 10 minutes and Google Sheets refreshes it about once an hour. With option B, download a fresh CSV and repeat step 5. In Excel or LibreOffice, see Excel, Microsoft 365, Numbers and Pages.
The Summary tab with the explorer balance 6108753 typed into B17 and the result OK: matches the explorer.
The example address: balance typed into B17, and the check says OK.

Do not skip this step. It is the only way to know the transaction list is complete.

7Read your Summary

RowHow it is worked out
Current balanceEvery amount in the export added together
Your own depositsBalance minus staking rewards: the coins you put in yourself, less anything you sent away
Staking rewards earnedThe sum of all STAKE rows
Average reward per stakeRewards divided by the number of stakes
Rewards, last 30 daysSTAKE rows in the 30 days before the newest transaction
Annual yield (last 30 days)Last 30 days of rewards divided by the balance, scaled to 365 days
Total return on depositsAll rewards so far divided by your own deposits. This one is not per year

For the example address: 513,272 DIVI of rewards on 5,595,481 DIVI of deposits is a total return of 9.2 % since the first stake in February 2026, and the last 30 days ran at about 11.8 % a year.

8Monthly rewards and charts

The Monthly tab lists the last 24 months: rewards earned, how many stakes, and the balance at the end of each month. The months are counted back from the newest transaction in your export.

Two charts sit to the right of the table:

The Monthly tab charts: a bar chart of staking rewards per month and a line chart of balance over time.
Monthly charts for the example address, February to October 2026.
A month has fewer stakes than usual?

Your staking wallet must be online and unlocked for staking to earn rewards. Compare a weak month with when the wallet machine was off or updating.

9Project your future returns

The Projection tab has three yellow input cells. Change them to try out scenarios; everything else updates.

CellInputStarts as
B4Starting balance (DIVI)Your current balance from the Summary
B5Expected annual yieldYour last-30-day yield. Type your own guess, for example 10%
B6Extra deposit each month (DIVI)0. Enter an amount if you plan to add coins regularly
The Projection tab: yellow input cells for starting balance, yield and monthly deposit, and the projected balances in 1, 3 and 5 years.
Inputs in yellow at the top, results right below them.

Below the inputs you get the balance in 1, 3 and 5 years, the rewards over the next 12 months, and how much extra comes from compounding. The table underneath goes month by month for 5 years, and the Projected balance chart shows two lines:

The Projected balance chart with two lines over 5 years: rewards re-staked rising faster than rewards not re-staked.
The upper line is re-staked; the gap is what compounding adds.

The gap between the two lines is the value of compounding. For the example address, at its current 11.8 % a year with no extra deposits, the projection is about 6.87 million DIVI after 1 year and about 11.0 million after 5 years.

Try a cautious case

Set the yield a few points lower than your current one. Staking yield on Divi depends on the network's total stake and on how often your wallet is online, so a lower figure gives you a safer planning number.

10Keep it up to date

With option A from step 5 there is nothing to re-import: Google Sheets fetches your transactions again by itself. Whenever you look, type the current explorer balance into the check cell and confirm it says OK (step 6).

With option B, once a month (or whenever you like):

  1. Download a fresh CSV from your CSV link or your bookmarked address page (step 2).
  2. On the Transactions tab, select everything, delete, click A1 and import the new file (step 5, option B).
  3. Type the new explorer balance into the check cell and confirm it says OK (step 6).

Your projection inputs on the Projection tab stay as you left them.

Values in your own currency

Your tax office and your accounting app do not care how many DIVI you earned. They care what those DIVI were worth in your own currency, on the day you received them. So the CSV and the explorer can both put a value on every coin, measured in a stablecoin: a coin built to track a national currency, such as USDT or USDC for the US dollar and EURS for the euro.

Add a currency to the CSV

Add ?vs= and a currency to the end of your CSV link:

https://services.divi.domains/api/rpc/csv/DHfobp6GtP7gTfLPPpPt5wQejsXurmAgtL.csv?vs=usdt

The file gets two more columns: Price (USDT), the price of one DIVI on that row's day, and Value (USDT), the row's amount times that price. A STAKE row's value is the income you report; an OUT row's value is negative.

Put on the endValues in
?vs=usdtTether (USDT), tracks the US dollar
?vs=usdcUSD Coin (USDC), tracks the US dollar
?vs=daiDai (DAI), tracks the US dollar
?vs=pyusdPayPal USD (PYUSD), tracks the US dollar
?vs=fdusdFirst Digital USD (FDUSD), tracks the US dollar
?vs=eursSTASIS EURO (EURS), tracks the euro
?vs=usdThe US dollar itself

The link works anywhere the plain one does, including Google Sheets' IMPORTDATA from step 5. The template reads the first columns only, so the extra two do not disturb it.

Prices go back about one year

The prices come from CoinGecko, which publishes one price a day for the last year. Rows older than that have an empty price and value. For those, take the day's price from a source your tax adviser accepts and fill it in yourself. A stablecoin is not your currency itself: it usually trades within a cent of it, but check what your tax office wants.

See it in the explorer

The Staking intelligence tab has a Value in your currency box. Pick a currency under Show value in; it shows what your balance and your rewards are worth today, and its CSV link changes to match. The explorer remembers your choice.

The Staking intelligence tab: the Value in your currency box with a Show value in picker set to USDT, and the Plan ahead box with two projection charts, one in DIVI and one in USDT.
Pick a currency once; the values, the projection and the CSV link all follow it.

If the past continues: DIVI and its value

Below it, Plan ahead projects five years in two charts. The first counts DIVI: how your balance grows at your yield, with rewards re-staked or not, the same as the spreadsheet's Projection tab. The second turns that into your currency, and for that it needs a guess at DIVI's future price. DIVI's price gives three:

"Today's price" is the middle of the last seven daily prices, so one odd day does not swing the result. Hover over either chart to read a month's figure.


Excel, Microsoft 365, Numbers and Pages

The template is an ordinary .xlsx file, so it opens in Excel, Apple Numbers and LibreOffice as well as Google Sheets. What differs is how the program gets your transactions and whether it can fetch them again by itself.

ProgramFetches the CSV link itselfUpdates by itself
Google SheetsYes, with IMPORTDATA (step 5, option A)Yes, about once an hour
Excel for Windows (Microsoft 365; Microsoft's list also names 2016 and 2019)Yes, with Get Data → From WebYes, on a timer you set, while the file is open
Excel for MacNot with Get Data: Microsoft's list of its sources has no Web entryNo. Download the CSV and import it
Excel for the web (in a browser)No: its Get Data has no Web source eitherNo
LibreOffice CalcYes, with Sheet → External LinksYes, on a timer you set, while the file is open
Apple NumbersApple documents importing files, not web linksNo. Download the CSV and import it
Apple PagesPages is a word processor, not a spreadsheet. Apple documents tables you type or paste into, not tables that load data

Excel for Windows: a link that updates itself

Excel for Windows can read the same CSV link Google Sheets uses. Open the template in Excel first.

  1. On the Transactions tab, select everything with Ctrl+A and press Delete.
  2. Choose Data → Get Data → From Other Sources → From Web.
  3. Paste your CSV link from step 2, for example https://services.divi.domains/api/rpc/csv/DHfobp6GtP7gTfLPPpPt5wQejsXurmAgtL.csv, and click OK. If Excel asks how to connect, choose Anonymous.
  4. A preview of your transactions appears. Click the small arrow next to Load and choose Load To….
  5. Choose Table and Existing worksheet, type =Transactions!$A$1 and click OK.

The history lands on the Transactions tab with the header in row 1, where the other tabs expect it. To make it update by itself:

  1. Choose Data → Queries & Connections, right-click the query in the panel and choose Properties.
  2. Tick Refresh every … minutes and type 60, and tick Refresh data when opening the file.
  3. Save the workbook.

Excel now fetches your history every time you open the file and every hour while it is open. To fetch right away, choose Data → Refresh All. Check the balance in step 6 as usual.

Do not use Excel's "Load" button directly

The plain Load button puts the data on a new tab. The other tabs only read the tab named Transactions, so you would keep seeing the example numbers. Always use Load To… and the Transactions tab.

These steps follow Microsoft's own guides, Import data from the web and Connection properties. Menu names can move a little between Excel versions.

Excel for Mac: import the CSV file

Excel for Mac can import external data, but not from a web link through Get Data. Microsoft's list of Power Query sources in Excel for Mac names Excel workbooks, Text/CSV, XML, JSON, SQL Server, SharePoint Online lists, OData and blank tables; there is no Web entry, and in 2023 Microsoft said it plans to add one. Excel 2016 and 2019 for Mac have no Power Query at all. Its Data → Get Data window looks like this:

The Excel for Mac Get Data (Power Query) window. The data sources are Excel workbook, Text/CSV, XML, JSON, SharePoint Online list, OData, Blank table and Blank query. There is no web source.
Excel for Mac, Data → Get Data: the sources Microsoft lists, with no "From Web" among them.
  1. Download your CSV from the link or the CSV button (step 2).
  2. Open the template in Excel. On the Transactions tab, select everything with ⌘+A and press Delete.
  3. Open the CSV in Excel too (double-click it, or File → Open). Press ⌘+A, then ⌘+C.
  4. Go back to the template, click cell A1 on the Transactions tab and press ⌘+V.

To update, download a fresh CSV and repeat these four steps. Check the balance in step 6. If a future Excel for Mac gains the Web source, the Excel for Windows steps above will work there too.

Excel for the web and Microsoft 365 in a browser

Excel in a browser (at office.com or in OneDrive) opens the template and calculates everything, but it cannot create a link to the CSV. Since January 2026 it has a Data → Get Data button on Microsoft 365 Business and Enterprise plans, but Microsoft's list of its sources is files on OneDrive or SharePoint, SQL Server, SharePoint lists and OData: no web link. Microsoft lists the button for Business and Enterprise plans.

A link made in Excel for Windows does not update in the browser either: Microsoft's list of data sources Excel for the web can refresh does not include web links. If you keep the workbook in OneDrive, set up and refresh the link in Excel for Windows; in the browser you see the numbers from the last refresh.

LibreOffice Calc: a link that updates itself

LibreOffice Calc can read the CSV link too, and refresh it on a timer. Open the template in Calc first.

  1. On the Transactions tab, select everything with Ctrl+A (⌘+A on a Mac) and press Delete, then click cell A1.
  2. Choose Sheet → External Links.
  3. Paste your CSV link from step 2 into URL of external data source and press Enter. Calc shows its text import dialog; make sure Comma is the only separator ticked and click OK.
  4. Select the entry under Available tables/ranges, enter 3600 seconds in Update every, and click OK.

Your history lands at A1 of the Transactions tab and Calc fetches it again every hour while the file is open. LibreOffice's own guide: External Links. Check the balance in step 6 as usual; to update right away, choose Edit → Links to External Files and click Update.

Apple Numbers: import the CSV file

Apple's guide to Numbers describes importing Excel and text files, not reading a web link, so load your history by hand: open the template, empty the Transactions tab, open your downloaded CSV, copy everything and paste it into cell A1 of the Transactions tab, exactly as for Excel for Mac above. We have not tested the template in Numbers; if a cell shows an error there, Google Sheets or Excel will give you the correct figure.

Older Excel

The "First stake" date on the Summary tab uses MINIFS, which Excel 2016 and older do not have. Only that one cell is affected; every other number works.

Apple Pages

Pages is Apple's word processor. It has tables and charts, and Apple's guide describes tables you type or paste into, not tables linked to a spreadsheet or a web address. To put your figures in a Pages report, copy them from the spreadsheet and paste them in, and paste again when you want newer numbers.

QuickBooks, Xero, Quicken and other money apps

If you only want to see your returns, you do not need a spreadsheet at all: the explorer's Staking intelligence tab shows the same yield and projection for any address. But the explorer only sees the blockchain. It has to treat every coin that arrives as profit and every coin that leaves as a loss, because it cannot know that a deposit was your own savings, or that a withdrawal paid a bill or moved coins to your other wallet. Your real books are messier than that, and only you can annotate them. That is why the history is a file you can take into your own private tools.

Can they fetch the link by themselves?

No. Unlike Google Sheets, Excel for Windows and LibreOffice Calc, none of these apps reads a web link on a schedule. They all take a file you upload, and their automatic bank feeds cover banks, not Divi addresses.

AppFiles it importsUpdates by itself
Koinly, CoinLedgerEach has a Divi page with its own import steps; CoinLedger also takes a CSV in its own layoutSee their Divi pages below
QuickBooks OnlineCSV, QBO, QFX, OFXNo. Upload a file
XeroCSV, OFX, QFX, QBO, QIFNo. Upload a file
QuickenWindows: QFX, CSV (QIF only into cash, asset and liability accounts). Mac: OFX, QFXNo. Import a file
YNABCSV, OFX, QFX, QIF; also a public APIOnly through the API
MonarchCSV (web app only)No. Upload a file
WaveCSV, OFX, QBO, QFXNo. Upload a file
These apps count money, not DIVI

Accounting and budgeting apps record every amount in your own currency. The plain CSV counts in DIVI only. Before you import it into QuickBooks, Xero, Quicken, YNAB, Monarch or Wave, download it with a currency added (see above) so every row carries its value on that day, use the priced OFX statement below, or add that column yourself from a price history you trust. Crypto tax tools such as Koinly and CoinLedger are built for this, which is why they are the easier place to start.

Crypto tax tools: Koinly and CoinLedger

Both publish a page for Divi: Koinly's Divi page and CoinLedger's Divi page. Start there and follow their steps. If you need to add rows by hand, their CSV import wants its own column layout, not ours; CoinLedger publishes its manual import template, and CoinTracker its CSV format. Copy our Date and Amount into their columns: a STAKE row is income, an IN row is coins received and an OUT row is coins sent.

QuickBooks, Xero, Quicken, YNAB, Monarch and Wave: a CSV statement

Each of these treats the CSV like a bank statement. The menus differ, but the preparation is the same. Work on a copy of your downloaded CSV in any spreadsheet:

  1. Download the CSV with ?vs=usdt (or your currency) on the end of the link, so it already has a Value column: the Amount (DIVI) times the DIVI price on that row's date. For rows older than a year, fill in the value yourself. An OUT row has a negative amount, so its value is negative too, which is how these apps tell money in from money out.
  2. Add a column named Description that joins the Type and the TxID, for example STAKE 3f9c…, so you can find the transaction on the explorer later.
  3. Delete the other columns, keep the header row, and save as CSV.
  4. In the app, create an account for your Divi wallet, choose its statement or file upload, and match the columns when asked: Date to date, Description to description, Value to amount.

The vendors' own guides: QuickBooks Online, manually upload transactions; Xero, manually importing bank statements; Quicken, import transactions from a CSV file; Wave, upload a statement in CSV format; YNAB, file-based import; Monarch, importing transactions manually.

Skip the spreadsheet: an OFX statement

QuickBooks Online, Xero, YNAB, Wave and Quicken for Mac also import OFX, the file format banks use for statements. The explorer serves your history as one, already priced, so there is nothing to prepare. Download it from this link and upload it to your Divi account in the app:

https://services.divi.domains/api/rpc/ofx/DHfobp6GtP7gTfLPPpPt5wQejsXurmAgtL.ofx?vs=usdt

Quicken for Windows does not read OFX, only its own QFX flavour of it, so use the CSV steps above there; Quicken for Mac takes the OFX file. If any other app turns the file down, the CSV steps work there too.

Now annotate your books

This is where the messy parts get fixed. Mark STAKE rows as income. Mark an IN or OUT between two of your own wallets as a transfer, not a gain or loss. Give each payment its real category. The app keeps those notes private to you, and to update it, download a fresh CSV and import only the rows after your last import.


Reading the numbers honestly

A projection is not a promise
  • The projection assumes the same yield every month for 5 years. Real staking rewards change with the network's total stake, your wallet's uptime and any change to Divi's reward schedule.
  • The spreadsheet counts in DIVI. The value of DIVI in dollars, euros or any other currency can go up or down a lot. The explorer's value projection only asks "what if the past year's price change carried on"; it is a what-if, not a forecast, and a past trend says nothing certain about the next one.
  • DIVI trades thinly, on few markets. A single big order can move its price, so a day's price is a rough guide, not a firm number you could always sell at.
  • Past yield does not guarantee future yield.
Not financial advice

This tutorial shows you how to read your own on-chain history. It is not investment, tax or financial advice. For decisions about your money or your taxes, talk to a qualified professional.

Privacy

Your address history is public on the blockchain. The CSV contains nothing secret. Still, think before you share your spreadsheet: it links your address to you.