<p>From the source in 0.8.6, I see these possible categories:</p>

<pre><code>src/rpcwallet.cpp:961:            entry.push_back(Pair("category", "send"));
src/rpcwallet.cpp:986:                        entry.push_back(Pair("category", "orphan"));
src/rpcwallet.cpp:988:                        entry.push_back(Pair("category", "immature"));
src/rpcwallet.cpp:990:                        entry.push_back(Pair("category", "generate"));
src/rpcwallet.cpp:993:                    entry.push_back(Pair("category", "receive"));
src/rpcwallet.cpp:1011:        entry.push_back(Pair("category", "move"));
</code></pre>

<p>So essentially:</p>

<ul>
<li>"send" </li>
<li>"orphan" </li>
<li>"immature" </li>
<li>"generate" </li>
<li>"receive" </li>
<li>"move"</li>
</ul>

CC BY-SA 4.0
2018-07-20T19:43:41.823Z
What about the "and what do they eman?" part of the question ? :)
Caius Jard
CC BY-SA 3.0
2014-01-11T02:16:41.287Z
2014-01-11T02:16:41.287Z
jjardine
<p>What you are seeing is not an inherent property of a transaction but how the transaction looks to you at the current time and how your Bitcoin client wants to display it.</p>

<p>A transaction contains inputs and outputs; if the transaction is considered a "send" or "receive" (or "transfer") depends on which of the input and output addresses are in your wallet and considered to be owned by yourself.</p>

<p>An "unconfirmed" transaction is one which is recent enough to not be considered a canonical part of the block chain.  Once enough blocks have been added to the block chain after the one in which your transaction is recorded it will be considered confirmed.  The number of blocks depends on your Bitcoin client.</p>

<p>An "immature" transaction is a generation transaction which is not old enough to be made available for spending.  Under the current specification a generation transaction must have at least 100 confirmations before it can be spent.</p>

CC BY-SA 3.0
2013-04-14T17:32:16.917Z
immature is only used for generation transactions, and is decidedly different from unconfirmed transactions. Unconfirmed transactions are perfectly valid and can be spent, though wallets try to avoid it. Immature coins are generations which do not have 120 confirmations yes, and these are effectively invalid (worthless) before they are.
Pieter Wuille
CC BY-SA 3.0
2013-04-14T17:42:23.870Z
@Pieter Yes sorry absolutely right.  Have updated answer (although protocol says that it's 100 confirmations not 120)
jgm
CC BY-SA 3.0
2013-04-14T17:56:32.057Z
@jgm The protocol requires 101, IIRC. The wallet software uses 120 to protect against some problems in cases of reorganisation.
Pieter Wuille
CC BY-SA 4.0
2021-08-02T10:51:37.867Z
@PieterWuille would that mean that immature transactions cannot be spent by the user until they get a 100 confirmations?
philosopher
CC BY-SA 4.0
2021-08-02T16:28:35.633Z
@philosopher That is correct. The outputs of coinbase transactions (called "generation" transactions in the answer here) cannot be spent until 100 blocks have been built on top of the block that includes them.
Pieter Wuille
CC BY-SA 4.0
2021-08-02T18:21:41.720Z
@PieterWuille Thank you. In this case, if I was calculating the the sum of deposits for an address from the output of listsinceblock, would I only have to consider transactions of category receive and generate and ignore all transactions of category immature, send, orphan or any other category?
philosopher
CC BY-SA 4.0
2021-08-02T18:27:12.113Z
Unless you're a miner who is using your own bitcoin core's wallet to build your own pool with, you won't ever need to worry about immature transactions.
Pieter Wuille
CC BY-SA 4.0
2021-08-02T19:56:42.663Z
@PieterWuille Thanks! Hypothetically though, if I was had a list of transactions, which included immature transactions and I wanted to display the sum of deposits for user's address, would I include the immature transaction or exclude them? Intuition tells me I should exclude them since they are not spendable until they become generation transactions.
philosopher
CC BY-SA 4.0
2021-08-02T20:00:21.203Z
Immature transaction outputs will actually be listed with value 0, in `listtransactions`, I believe.
Pieter Wuille
CC BY-SA 4.0
2021-08-02T20:36:16.873Z
@PieterWuille Not all immature transactions have an amount of 0. Some can have an amount greater than 0, at least when polling listsinceblock. The reason I am asking this question is because I am writing a program where given outputs from listsinceblock, I want to compute the valid deposits with confirmations greater than 4 for a user's wallet address. Sometimes when I poll listsinceblock I get immature transactions in the output with with amount greater than 0. I am not sure whether this would count as a deposit to the user's wallet or not, hence the question.
philosopher
CC BY-SA 3.0
2013-04-14T12:40:26.803Z
2013-04-14T17:41:15.600Z
2013-04-14T17:41:15.600Z
jgm
<p>I've only seen "receive", "send", and "immature". Are there other categories that I'm missing? And what do they mean? It seems that "receive" means a transaction that gave our account coins, and "send" means we gave someone else coins.</p>

<transactions><bitcoind>
What are the categories of a transaction, and what do they mean?
Ramon Tayag
# What are the categories of a transaction, and what do they mean?

(Asked by: username_0 on 2013-04-14)

I've only seen "receive", "send", and "immature". Are there other categories that I'm missing? And what do they mean? It seems that "receive" means a transaction that gave our account coins, and "send" means we gave someone else coins.

**Tags:** transactions, bitcoind


---

## 2 answers

### Answer by username_3 on 2013-04-14. Score: 5 | Accepted answer

What you are seeing is not an inherent property of a transaction but how the transaction looks to you at the current time and how your Bitcoin client wants to display it.

A transaction contains inputs and outputs; if the transaction is considered a "send" or "receive" (or "transfer") depends on which of the input and output addresses are in your wallet and considered to be owned by yourself.

An "unconfirmed" transaction is one which is recent enough to not be considered a canonical part of the block chain. Once enough blocks have been added to the block chain after the one in which your transaction is recorded it will be considered confirmed. The number of blocks depends on your Bitcoin client.

An "immature" transaction is a generation transaction which is not old enough to be made available for spending. Under the current specification a generation transaction must have at least 100 confirmations before it can be spent.

> **Comments:**
> **username_4**: immature is only used for generation transactions, and is decidedly different from unconfirmed transactions. Unconfirmed transactions are perfectly valid and can be spent, though wallets try to avoid it. Immature coins are generations which do not have 120 confirmations yes, and these are effectively invalid (worthless) before they are.  
> **username_3**: @username_4 Yes sorry absolutely right.  Have updated answer (although protocol says that it's 100 confirmations not 120)  
> **username_4**: @username_3 The protocol requires 101, IIRC. The wallet software uses 120 to protect against some problems in cases of reorganisation.  
> **username_5**: @username_4 would that mean that immature transactions cannot be spent by the user until they get a 100 confirmations?  
> **username_4**: @username_5 That is correct. The outputs of coinbase transactions (called "generation" transactions in the answer here) cannot be spent until 100 blocks have been built on top of the block that includes them.  
> **username_5**: @username_4 Thank you. In this case, if I was calculating the the sum of deposits for an address from the output of listsinceblock, would I only have to consider transactions of category receive and generate and ignore all transactions of category immature, send, orphan or any other category?  
> **username_4**: Unless you're a miner who is using your own bitcoin core's wallet to build your own pool with, you won't ever need to worry about immature transactions.  
> **username_5**: @username_4 Thanks! Hypothetically though, if I was had a list of transactions, which included immature transactions and I wanted to display the sum of deposits for user's address, would I include the immature transaction or exclude them? Intuition tells me I should exclude them since they are not spendable until they become generation transactions.  
> **username_4**: Immature transaction outputs will actually be listed with value 0, in `listtransactions`, I believe.  
> **username_5**: @username_4 Not all immature transactions have an amount of 0. Some can have an amount greater than 0, at least when polling listsinceblock. The reason I am asking this question is because I am writing a program where given outputs from listsinceblock, I want to compute the valid deposits with confirmations greater than 4 for a user's wallet address. Sometimes when I poll listsinceblock I get immature transactions in the output with with amount greater than 0. I am not sure whether this would count as a deposit to the user's wallet or not, hence the question.  

---

### Answer by username_1 on 2014-01-11. Score: 2

From the source in 0.8.6, I see these possible categories:

```
src/rpcwallet.cpp:961:            entry.push_back(Pair("category", "send"));
src/rpcwallet.cpp:986:                        entry.push_back(Pair("category", "orphan"));
src/rpcwallet.cpp:988:                        entry.push_back(Pair("category", "immature"));
src/rpcwallet.cpp:990:                        entry.push_back(Pair("category", "generate"));
src/rpcwallet.cpp:993:                    entry.push_back(Pair("category", "receive"));
src/rpcwallet.cpp:1011:        entry.push_back(Pair("category", "move"));

```

So essentially:

* "send"
* "orphan"
* "immature"
* "generate"
* "receive"
* "move"

> **Comments:**
> **username_2**: What about the "and what do they eman?" part of the question ? :)  

---

