How to directly sign a Cardano transaction?

Hi,

First and foremost: if I understand correctly, currently when sending transactions a Cardano Node just takes a spending password, and then creates a transaction, decrypts a private key with a spending password, signs a transaction and submits it to blockchain. All of that is done undercover and cannot be affected by an application developer in a current form of Cardano. Please correct me if I’m wrong, though API method: https://cardanodocs.com/technical/wallet/api/v1/?v=1.6.0#section/Getting-Started/Sending-ADA would suggest that I’m not.

In an app that I’m integrating Cardano with, it is crucial to modify a process of signing a transaction - so I would like to get my hands on an actual unsigned transaction object, sign it myself and then submit it to blockchain. Is it possible to do in current Cardano form? If not - what do I need to do to achieve that? Would I need to write a custom Cardano node or is there an easier way?

Kind regards,
KSS

1 Like

Bumping the topic, hoping that some Cardano dev will see it :pray: . Sorry for that, but I really hope to get some eyes on the issue before deciding to write a custom node.

@SebastienGllmt @vantuz-subhuman

You could use WASM or CLI instead of cardano-sl endpoint - which btw - only supports one (HD Random) of the two common wallet types in Cardano.
FYI: CLI/Cardano-SL API usage is OK for the current (Byron) mainnet, you will probably have to switch to shelley wallets after a while (atleast a few months away). I believe using WASM might suit you better in that case.

3 Likes

This should also be doable with Tangata-Manu: https://github.com/Emurgo/tangata-manu

3 Likes

Thanks, I will try to look at WASM and post here again regardless of the result :wink:

2 Likes

Hi!

What I would like to do is to just sign the transactions in a cold environment - which would be a raspberry Pi 32bit.
So is there any lightweight cardano-cli solution for that?
cardano project not supported on ARMv7 32bit… as I know…
Thanks!

Sure - you can sign transaction simply using cardano-cli or use serialisation-lib / equivalent, and transfer that file to any machine with node to submit

Thanks! but how could I have cardano-cli on a 32bit armv7 OS if it is not supported?
I am a beginner building applications so could you please share a link about this serialisation-lib? is it a rust package, or what?
update:
just found Emurgo’s cardano-serialization-lib page

So that is what you are referring to @rdlrt ? thanks I will try to compile and use it…