Author

Topic: Create Raw Transaction & Sign It without BitcoinCore? (Read 220 times)

legendary
Activity: 1442
Merit: 1186
Yes there is a lot of software like this.

As others have stated one of the long lasting apps for this is https://coinb.in

I made one myself as well with UTXO selection in javascript using bitcoinjs.

https://coinables.github.io/coldsigner/
https://github.com/coinables/coldsigner

legendary
Activity: 3346
Merit: 3125
If it could be done with Bash Linux it would be awesome.
I'm following this Smiley
I sometimes use Electrum to create an unsigned transaction using a watch-only hot wallet, but it would be great if the entire transaction can be created offline (after manually entering the UTXO).

After some research I found this tool for to manage transactions with bash linux:

https://github.com/pebwindkraft/trx_cl_suite

After looking at the code is a great transaction tools suite, I know you will like it LoyceV.

Examples:
Code:
./tcls_create.sh -c c3434be....5c5b7a310cc67 0 76A9141FE307887696CF781DA237DBE2E12DB05C10986A88AC 110000 12GTF5ARSrqJ2kZd4C9XyGPesoVgP5qCdM

Code:
./tcls_sign.sh -v 0100000003bbb...ac0000000001000000 -w KyP5KE...tQPcN4 -p 03cc5d...8dced0

And thanks to nc50lc and mocacinno, your information was useful too  Wink
legendary
Activity: 2534
Merit: 6080
Self-proclaimed Genius
-snip- I know some services online allow us to create transactions, but they could use bitcoin core in the backend for it. And I start this post to see if it was possible without this main software.
Just do not use any transaction generation software at all so you can make sure that Bitcoin Core isn't involved.
Except for the signing part since you can't compute the signature by hand.

Use your Notepad or any text editor:
First, list all the data that you need - input (TXID:VOUT), output's scriptPubKey.

Example (mainnet):
input:          aaf952cd5604ee02fdcb1c700c8f2f0759af55b8b468adff91ef468540ac336f
vout:           0
value:          100000 satoshi

output:         bc1qe55yu3dkw7rc7n8kk2r4r2nq3phagpxnzljtm2
scriptPubKey:   0014cd284e45b677878f4cf6b28751aa60886fd404d3 [22 Bytes in decimal = 16 in HEX]
value:          0.00099720BTC = 99720 satoshi = 0000000000018588 in HEX [8 Bytes]
Then construct a transaction by following this structure: learnmeabitcoin.com/technical/transaction-data
For the fields with "Reverse Byte Order", use this tool: learnmeabitcoin.com/tools/swapendian/ (or do it manually)

Manually constructed transaction from the example above:
Code:
01000000016f33ac408546ef91ffad68b4b855af59072f8f0c701ccbfd02ee0456cd52f9aa0000000000ffffffff018885010000000000160014cd284e45b677878f4cf6b28751aa60886fd404d300000000

Broken down into parts:
01000000 (version: 1 in 'reverse byte order')
01 (input count: 1)
6f33ac408546ef91ffad68b4b855af59072f8f0c701ccbfd02ee0456cd52f9aa (input's txid in 'reverse byte order')
00000000 (vout: 0 in 'reverse byte order')
00 (scriptSig size)
[no scriptSig]
ffffffff (sequence in 'reverse byte order')
01 (output count: 1)
8885010000000000 (value in 'reverse byte order')
16 (ScriptPubKey size)
0014cd284e45b677878f4cf6b28751aa60886fd404d3 (ScriptPubKey)
00000000 (locktime in 'reverse byte order')

Lastly, sign the raw transaction using your preferred software (I used Bitcoin Core since it's Taproot).
Screenshot that shows it's valid after signing:

(transaction is not broadcasted)
legendary
Activity: 3584
Merit: 5243
https://merel.mobi => buy facemasks with BTC/LTC

Just a quick heads-up: above link goes to my blog, but the post was written 5 years ago and hasn't been updated since...
This is not a security concern, but most links to my tools no longer word due to bad maintenance (lack of time).

Also, this was during a time where it was still "normal" to have P2PKH (legacy) addresses derived from a single private key (eventough HD wallets were also common). Nowadays, i guess most people will have an SPV HD wallet and use the P2WPKH address format (maybe we'll even see more P2TR in the future).

Valid alternatives for the outgoing links have been added right into coinb.in directly, eventough some do need an active internet connection (so you'll end up with an offline version of coinb.in to do the actual signing, and an online version to broadcast your transaction):
the fee-estimate link: https://coinb.in/#fees
the raw transaction decode link: https://coinb.in/#verify
the txpusher link: https://coinb.in/#broadcast

My advice for anybody would be to test everything out on the TESTNET first:
https://coinb.in/#settings
As long as you're on the testnet, you can do every step with the online version of coinb.in... Just make sure to download a local copy and go offline BEFORE touching any main net private keys!!!

TL;DR; There aren't any security concerns with the link to my blog, but most of the links to my toolset are dead and it's possible users have to use a slightly different approach to sign transactions (since they probably won't be using unspent outputs funding P2PKH addresses).
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
If it could be done with Bash Linux it would be awesome.
I'm following this Smiley
I sometimes use Electrum to create an unsigned transaction using a watch-only hot wallet, but it would be great if the entire transaction can be created offline (after manually entering the UTXO).
legendary
Activity: 1042
Merit: 2805
Bitcoin and C♯ Enthusiast
I was thinking about software to create, sign or decode transactions without the Node. To create a transaction is an algorithm where we have to input the TXID, VOUT, and the Amount. And to sign it we need the private key.
A long time ago in order to understand bitcoin better I started a project called BitcoinTransactionTool. It can decode, modify and create transactions by receiving UTXOs from block explorer APIs. Feel free to look at the code but know that it is incomplete, buggy and abandoned but it works well for basic things such as decoding basic transactions and creating legacy transactions.

I have long moved on to a newer and more complete project which I call Denovo and will eventually add this option to it. Unlike the old project, basic things such as transaction/script decoding and evaluation are complete and well tested here. It just lacks the user friendly way of creating or modifying transactions and it lacks the option to get UTXOs (Full node or SPV clients are incomplete and won't add centralized options such as block explorers).

I'm sure we need a Bitcoin Node to push the transaction
You don't really need to run a full node to broadcast a transaction. All you need is a peer IP address (could be gained using DNS dig), an open socket to that IP and ability to construct version/verack messages and sending them.

Denovo has this feature in a simple UI which uses what I call MinimalClient.
legendary
Activity: 3346
Merit: 3125
Take a look at: https://github.com/ttutdxh-nubits/cointoolkit
Live version: https://nubits.com/cointoolkit/#newTransaction

There are a few others out there that use desktop python too.
Any reason you are trying to do this, or is it just something you want to try?

Thanks a lot Dave, this was more than what I was looking for. I was looking for software to make transactions without bitcoin core for a personal project.

It seems that you didn't understand how does it work TXID only generate when you have already created a raw transaction it includes UTXO(unspent transaction), a destination address, change address, and the amount.

Like the above said this https://coinb.in/#newTransaction is the only known tool that you can create a raw transaction and sign through this https://coinb.in/#sign
You can also able to push the transaction through here https://coinb.in/#broadcast

If you want a guide check this How to create, sign and broadcast transactions using coinb.in

I know how transactions work I have built them with bitcoin-cli in the past, I know some services online allow us to create transactions, but they could use bitcoin core in the backend for it. And I start this post to see if it was possible without this main software.

I will keep this post open to see if someone knows any other software for it. If it could be done with Bash Linux it would be awesome.
 
legendary
Activity: 3374
Merit: 3095
Playbet.io - Crypto Casino and Sportsbook
It seems that you didn't understand how does it work TXID only generate when you have already created a raw transaction it includes UTXO(unspent transaction), a destination address, change address, and the amount.

Like the above said this https://coinb.in/#newTransaction is the only known tool that you can create a raw transaction and sign through this https://coinb.in/#sign
You can also able to push the transaction through here https://coinb.in/#broadcast

If you want a guide check this How to create, sign and broadcast transactions using coinb.in
legendary
Activity: 2702
Merit: 3045
Top Crypto Casino
Not sure I understood your question correctly or what you are trying to achieve, but any bitcoin wallet software/app can create transactions if it knows your addresses (which addresses to use) and can sign it if it has the private keys for those addresses.

However, if you want to specify, for example, which inputs to use (coin control) or specify the fee rate... then you need a wallet that support such features.
You can also use some tools such as coinb.in or the one suggested by DaveF.
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
Take a look at: https://github.com/ttutdxh-nubits/cointoolkit
Live version: https://nubits.com/cointoolkit/#newTransaction

There are a few others out there that use desktop python too.
Any reason you are trying to do this, or is it just something you want to try?

-Dave
legendary
Activity: 3346
Merit: 3125
Hello guys, the question is simple.

Do we need a bitcoin core to create and sign the transactions?

I'm sure we need a Bitcoin Node to push the transaction, but I was thinking about software to create, sign or decode transactions without the Node. To create a transaction is an algorithm where we have to input the TXID, VOUT, and the Amount. And to sign it we need the private key. And since the bitcoin core is open source there should be an alternative software to do it. But after hard research, I couldn't find anything.

Does anyone know if this is possible?
Jump to: