<p>There are two ways of doing this. One is with <code>cardano-db-sync</code> as mentioned in @zhekson's response.</p>
<p>The other way is by querying the <code>cardano-wallet</code> executable (bundled with Daedalus) as per the documentation at <a href="https://input-output-hk.github.io/cardano-wallet/api/edge/" rel="nofollow noreferrer">https://input-output-hk.github.io/cardano-wallet/api/edge/</a></p>
<p>I have a script like this:</p>
<pre><code>#!/bin/bash -eu

# https://input-output-hk.github.io/cardano-wallet/api/edge/

progname=$(basename &quot;$0&quot;)

curl --version &gt; /dev/null 2&gt;&amp;1 || { echo &quot;${progname}: 'curl' program is missing.&quot; &gt;&amp;2 ; exit 1 ; }
jq --version &gt; /dev/null 2&gt;&amp;1 || { echo &quot;${progname}: 'jq' program is missing.&quot; &gt;&amp;2 ; exit 1 ; }

wallet_pid=$(pidof cardano-wallet)
http_port=$(lsof -Pan -iTCP -sTCP:LISTEN -p &quot;${wallet_pid}&quot; | tail -1 | sed 's/.*://;s/ .*//')


function api () {
  curl --silent --cert ~/.local/share/Daedalus/mainnet/tls/client/client.crt \
    --cacert ~/.local/share/Daedalus/mainnet/tls/client/ca.crt \
    --key ~/.local/share/Daedalus/mainnet/tls/client/client.key \
    &quot;https://localhost:${http_port}/v2/$1&quot;
}

function wallets () {
  api wallets | jq '.[] | {name: .name, id: .id, state:.state.status, pool:.delegation.active.target, balance: (.balance.total.quantity / 1000000) }'
}

function transactions () {
  echo &quot;TransactionId,Timestamp,Direction,AmountAda&quot;
  api &quot;wallets/$1/transactions&quot; \
    | jq -r '.[] | [.id, .inserted_at.time, .direction, .amount.quantity / 1000000] | @csv' \
    | sort --field-separator=',' --key 2
}

function usage_exit {
  echo
  echo &quot;Usage:&quot;
  echo &quot;  $progname wallets                   - List the known wallets.&quot;
  echo &quot;  $progname transactions &lt;wallet&gt;     - List all transactions for a given wallet.&quot;
  echo
  exit 0
}

case &quot;${1:-&quot;&quot;}&quot; in
  wallets)
    wallets
    ;;
  transactions)
    shift
    if test $# -eq 1 ; then
      transactions &quot;$1&quot;
    else
      echo
      echo &quot;Error: A wallet needs to be specified.&quot;
      usage_exit
      fi
    ;;
  *)
    usage_exit
  esac
</code></pre>

CC BY-SA 4.0
2022-10-22T07:13:03.817Z
2022-10-22T07:13:03.817Z
Erik de Castro Lopo
<p>Address or wallet?</p>
<p>The distinction is important for UTXO chains following the <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" rel="nofollow noreferrer">BIP-44 standard</a>, because a single extended public key (wallet key) can generate a virtually infinite number of addresses. Are you looking to query a <em>single</em> one of these addresses, or <em>all</em> of the addresses associated with a single wallet?</p>
<p>In the case of the former, I am unaware of any easy third party solution for TX export by individual addresses. If there are none, the only option would be to query from an API endpoint like <a href="https://blockfrost.io/" rel="nofollow noreferrer">Blockfrost</a>, or to query from your own <a href="https://github.com/input-output-hk/cardano-db-sync" rel="nofollow noreferrer">db-sync</a> instance.</p>
<p>In the case of the latter however, light wallets (like <a href="https://eternl.io/app/mainnet/welcome" rel="nofollow noreferrer">Eternl</a>) have easy export options for the entire wallet history. You do not have to fully restore your wallet to access these features. You can instead import your wallet as read-only (requiring only the extended public key of the wallet, no signing keys), and export TX history in CSV format.</p>

CC BY-SA 4.0
2022-10-21T19:13:53.173Z
2022-10-22T01:16:34.120Z
2022-10-22T01:16:34.120Z
zhekson
<p>Is there an easy way, without writing code, to export a CSV file of all transactions from a specific address or wallet? (not Daedalus)</p>

CC BY-SA 4.0
2022-10-22T11:55:02.067Z
If you're using Nami you can use this https://github.com/Et9797/tx-history-viewer
et97
<wallet><transaction><address>
Is there an easy way to export a CSV file of all transactions from a specific address or wallet?
# Is there an easy way to export a CSV file of all transactions from a specific address or wallet?

(Asked by: username_0 on 2022-10-21)

Is there an easy way, without writing code, to export a CSV file of all transactions from a specific address or wallet? (not Daedalus)

**Tags:** wallet, transaction, address
> **Comments:**
> **username_1**: If you're using Nami you can use this https://github.com/Et9797/tx-history-viewer  

---

## 2 answers

### Answer by username_2 on 2022-10-22. Score: 0

There are two ways of doing this. One is with cardano-db-sync as mentioned in @zhekson's response.
The other way is by querying the cardano-wallet executable (bundled with Daedalus) as per the documentation at https://input-output-hk.github.io/cardano-wallet/api/edge/
I have a script like this:
#!/bin/bash -eu

# https://input-output-hk.github.io/cardano-wallet/api/edge/

progname=$(basename "$0")

curl --version > /dev/null 2>&1 || { echo "${progname}: 'curl' program is missing." >&2 ; exit 1 ; }
jq --version > /dev/null 2>&1 || { echo "${progname}: 'jq' program is missing." >&2 ; exit 1 ; }

wallet_pid=$(pidof cardano-wallet)
http_port=$(lsof -Pan -iTCP -sTCP:LISTEN -p "${wallet_pid}" | tail -1 | sed 's/.*://;s/ .*//')


function api () {
  curl --silent --cert ~/.local/share/Daedalus/mainnet/tls/client/client.crt \
    --cacert ~/.local/share/Daedalus/mainnet/tls/client/ca.crt \
    --key ~/.local/share/Daedalus/mainnet/tls/client/client.key \
    "https://localhost:${http_port}/v2/$1"
}

function wallets () {
  api wallets | jq '.[] | {name: .name, id: .id, state:.state.status, pool:.delegation.active.target, balance: (.balance.total.quantity / 1000000) }'
}

function transactions () {
  echo "TransactionId,Timestamp,Direction,AmountAda"
  api "wallets/$1/transactions" \
    | jq -r '.[] | [.id, .inserted_at.time, .direction, .amount.quantity / 1000000] | @csv' \
    | sort --field-separator=',' --key 2
}

function usage_exit {
  echo
  echo "Usage:"
  echo "  $progname wallets                   - List the known wallets."
  echo "  $progname transactions      - List all transactions for a given wallet."
  echo
  exit 0
}

case "${1:-""}" in
  wallets)
    wallets
    ;;
  transactions)
    shift
    if test $# -eq 1 ; then
      transactions "$1"
    else
      echo
      echo "Error: A wallet needs to be specified."
      usage_exit
      fi
    ;;
  *)
    usage_exit
  esac


---

### Answer by username_3 on 2022-10-21. Score: 0

Address or wallet?

The distinction is important for UTXO chains following the [BIP-44 standard](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki), because a single extended public key (wallet key) can generate a virtually infinite number of addresses. Are you looking to query a *single* one of these addresses, or *all* of the addresses associated with a single wallet?

In the case of the former, I am unaware of any easy third party solution for TX export by individual addresses. If there are none, the only option would be to query from an API endpoint like [Blockfrost](https://blockfrost.io/), or to query from your own [db-sync](https://github.com/input-output-hk/cardano-db-sync) instance.

In the case of the latter however, light wallets (like [Eternl](https://eternl.io/app/mainnet/welcome)) have easy export options for the entire wallet history. You do not have to fully restore your wallet to access these features. You can instead import your wallet as read-only (requiring only the extended public key of the wallet, no signing keys), and export TX history in CSV format.


---

