<p><code>time</code> is the best guess for the actual time a transaction took place. <code>timereceived</code> is the time at which the wallet received the transaction.</p>
<p>For the most part, both of these fields will be the same. Generally when you use a wallet, you will receive transactions when they are unconfirmed which is then both the time that the transaction is received, and the best guess for the time the transaction was made.</p>
<p>However there are a few cases where the <code>time</code> and <code>timereceived</code> will be different. This is particularly noticeable when creating a new wallet with imported data and rescanning the blockchain.</p>
<p>Suppose you import an address which has a transaction from 2 years ago. When your wallet scans the blockchain for existing transactions, it will learn of that transaction at the current time, so it sets <code>timereceived</code> to now. But that is not reasonable for a transaction that existed in the blockchain 2 years ago. So it will try to guess what time that transaction was actually made by looking at the timestamp for the block it is included in. That block's time becomes the <code>time</code> for that transaction. In this case, <code>time</code> and <code>timereceived</code> are not the same and more clearly represent what those times are.</p>

CC BY-SA 4.0
2021-01-01T21:15:21.897Z
2021-01-01T21:15:21.897Z
Ava Chow
<p><a href="https://bitcoincore.org/en/doc/0.20.0/rpc/wallet/listsinceblock/" rel="nofollow noreferrer">https://bitcoincore.org/en/doc/0.20.0/rpc/wallet/listsinceblock/</a> :</p>
<blockquote>
<p>&quot;time&quot; : xxx,                        (numeric) The transaction time expressed in UNIX epoch time.</p>
<p>&quot;timereceived&quot; : xxx,                (numeric) The time received expressed in UNIX epoch time.</p>
</blockquote>
<p>What?</p>
<p>In the output, every single &quot;transaction&quot; appears to have the exact same <code>time</code> and <code>timereceived</code> timestamps, killing my theory that <code>time</code> meant when the transaction was <code>sent</code> and <code>timereceived</code> referring to when the local Bitcoin Core first &quot;saw&quot; it.</p>
<p>It feels like I've asked about every single little part of Bitcoin Core online by now. I cannot fathom how anyone can get anything related to Bitcoin done when the documentation is this nonsensical/nonexistent.</p>

<bitcoin-core><json-rpc>
What is the difference between "time" and "timereceived"?
Yahweh
# What is the difference between "time" and "timereceived"?

(Asked by: username_0 on 2021-01-01)

<https://bitcoincore.org/en/doc/0.20.0/rpc/wallet/listsinceblock/> :

> "time" : xxx, (numeric) The transaction time expressed in UNIX epoch time.
>
> "timereceived" : xxx, (numeric) The time received expressed in UNIX epoch time.

What?

In the output, every single "transaction" appears to have the exact same `time` and `timereceived` timestamps, killing my theory that `time` meant when the transaction was `sent` and `timereceived` referring to when the local Bitcoin Core first "saw" it.

It feels like I've asked about every single little part of Bitcoin Core online by now. I cannot fathom how anyone can get anything related to Bitcoin done when the documentation is this nonsensical/nonexistent.

**Tags:** bitcoin-core, json-rpc


---

## 1 answers

### Answer by username_1 on 2021-01-01. Score: 3

`time` is the best guess for the actual time a transaction took place. `timereceived` is the time at which the wallet received the transaction.

For the most part, both of these fields will be the same. Generally when you use a wallet, you will receive transactions when they are unconfirmed which is then both the time that the transaction is received, and the best guess for the time the transaction was made.

However there are a few cases where the `time` and `timereceived` will be different. This is particularly noticeable when creating a new wallet with imported data and rescanning the blockchain.

Suppose you import an address which has a transaction from 2 years ago. When your wallet scans the blockchain for existing transactions, it will learn of that transaction at the current time, so it sets `timereceived` to now. But that is not reasonable for a transaction that existed in the blockchain 2 years ago. So it will try to guess what time that transaction was actually made by looking at the timestamp for the block it is included in. That block's time becomes the `time` for that transaction. In this case, `time` and `timereceived` are not the same and more clearly represent what those times are.


---

