How to Integrate MetaMask and Koinly

Simplify MetaMask tax reporting with Koinly. Integrate via API or CSV to easily calculate the tax liability of your MetaMask transactions, trading and history. Get started for FREE!

API Import

How to integrate MetaMask with Koinly

MetaMask is a popular in-browser wallet for crypto investors looking to buy, store, send and swap on the Ethereum blockchain. It's also an option for those interested in investing in DeFi and exploring DApps and has attracted more than 5 million users.

How to get a tax statement from MetaMask?

You might be wondering, does MetaMask provide CSV tax and trade history reports? Is it even possible to get tax info and statements from MetaMask? What about a MetaMask tax API? The good news is, while MetaMask might not provide tax forms and documents, MetaMask does offer one easy way to export transaction and trade history!

MetaMask pairs with Koinly through API file import to make reporting your crypto taxes easy. Once connected, Koinly becomes the ultimate MetaMask tax tool. How? Koinly will calculate your MetaMask taxes based on your location AND generate your EOFY tax report, all within 20 minutes! All you’ll need to do at tax time is download your MetaMask tax statement from Koinly and file it with your local tax authority. Done!

Connect to Koinly with the MetaMask tax report API

The best way to integrate MetaMask with your Koinly account is using the MetaMask browser extension. This is available on Chrome, FireFox and Brave. You can install the MetaMask browser extension on any of these browsers and we highly recommend doing this before you follow our API steps below.

On Koinly

  1. Sign up or log in to your Koinly account and go to the wallets page.
  2. Select add new wallet: MetaMask.
  3. Select set up auto-sync.

In Browser:

  1. Select the MetaMask extension icon in the top right corner of your browser.
  2. From the drop down tab at the top, find the Ethereum Mainnet option.
  3. Under the account name, copy the public address.

Back to Koinly:

  1. Paste the public address into the public address or key box.
  2. Select secure import.

Syncing other networks

Syncing your MetaMask wallet will sync all of your Ethereum transactions. To connect to other networks like Binance Smart Chain or Polygon, you'll need to create separate wallets for these networks in Koinly. You can do this by logging into your Koinly account and going to wallets. Instead of connecting MetaMask, find the network you want to connect, for example Polygon or Binance Smart Chain. Then find the public address for these networks in your MetaMask browser extension and copy and paste these into Koinly to import.

Good to know

Auto-syncing your MetaMask data takes a couple of minutes on Koinly. This is normal, Koinly is just working through your transactions to identify which are taxable events and which aren't. Once your data is imported, you might notice a small yellow warning icon next to your MetaMask wallet. This icon indicates an issue with imported data, click on it to find out the precise issue. You can learn more about how to resolve this in this guide. MetaMask doesn't give the option to export CSV files, although you can use some third-party providers to export CSV data directly from the ETH blockchain.

How do I check that my MetaMask import is accurate?

You should always check through your MetaMask transactions within Koinly after importing them. This is so you can identify any issues with imported data and correct them. Koinly can then calculate and generate an accurate tax report for you.

We've got some simple steps to follow to ensure your crypto tax report is accurate, all available in this great guide, but we'll cover them briefly here too.

All wallets, exchanges and blockchains

First up, check all your wallets and exchange accounts are connected to Koinly. This means Koinly can identify which transactions are transfers, and which are deposits or withdrawals. Koinly can then can identify which of your transactions are taxable and which aren't.

Look out for big numbers

After this, look through your imported data from MetaMask on Koinly's transactions page. Filter by the type of transaction to check through your withdrawals and deposits. This is so you can spot any withdrawals or deposits that you believe are transactions between your own wallets and therefore non-taxable. You can find out how to fix that here.

Review the labels of your transactions

On the same transactions page, take some time to review your transactions labels. Through API import, Koinly should be able to tag different types of transactions automatically. However, if these aren't tagged in the imported data, you can fix this manually. You can use the following labels:

Withdrawal Tags (sending funds):

As default, Koinly treats withdrawals as a disposal of asset, which is subject to Capital Gains Tax. However, some disposals are not taxable transactions depending on your location. You can use tags to label these withdrawal transactions.

  • Tag as gift: Gifting crypto is tax-free in many countries. Check your country's crypto tax rules and tag withdrawals as a gift if they're tax free in your country.
  • Tag as lost: Tag any stolen crypto as lost and claim as a loss if your country's tax rules allow.
  • Tag as cost: The cost label is used to tag transaction costs and fees.
  • Sent to Pool: If you're sending coins or tokens to a staking pool, mark these withdrawals as sent to pool. This lets Koinly know these transactions are not disposals.

Deposit Tags (receiving funds):

Deposits are anytime you receive new coins, in any wallet or exchange. Koinly treats all deposits as purchases at market price or investments by default. Of course, there are many ways to receive coins like through an airdrop and these could be subject to Income Tax. You can use deposit tags to label these transactions.

  • Tag as airdrop: Many countries see airdrops as a kind of bonus and therefore subject to Income Tax as opposed to Capital Gains Tax.
  • Tag as fork: Like the above, any new coins received as a result of a fork can be seen as a bonus and subject to Income Tax.
  • Tag as loan interest: If you're loaning crypto and receiving interest, many tax authorities see this as income.
  • Tag as income: Getting paid in crypto is viewed as income and is subject to Income Tax.
  • Received from Pool: You should use this tag to mark the capital you sent to a given pool, not any rewards as a result.
  • Tag as reward: Use this tag to label any rewards received from staking, as well as any other rewards like from referral schemes. Like airdrops, rewards are viewed as a kind of bonus and often subject to Income Tax.

Exchange (trading funds):

An exchange refers to exchanging crypto for crypto, as well as buying or selling crypto for fiat. Koinly can identify these trades based on imported data and calculate taxes. However, there is one instance when you need to tag an exchange.

  • Tag as swap: The swap tag is used if a coin has changed symbol or names. These types of transactions are non-taxable.

If you'd like to learn more about how to use Koinly, our Getting Started Guide is packed full of helpful information to help you resolve issues in no time at all.

How do I troubleshoot my MetaMask integration to Koinly?

Koinly has an amazing help section, dedicated to answering all our customer queries, from common issues to more unusual events. You can find lots of helpful advice from our customer support team in this help section. Some of our most frequently asked questions about MetaMask include:

You can find all MetaMask and Koinly help here. If you can't find the answer to your query, just send us a message.