3

When using smart contract and creating transaction, current wallet/user pays for fees. Example of transaction:

  • burn NFT
  • min NFT
  • burn native assets

In my situation, my customers have their own wallet (nami #whatever) but is there any chance I can use a company wallet to pay fees instead of them?

Naive idea:

  • customers should have some ADA: unfortunately I cannot go forward with it
  • granting customers some ADA will allow them to spend them on something else!~

Basically I would have love the idea to have several wallet involve in a single transaction (multisig) but I do not find any relevant solution.

Maybe a different pattern should be think of?

Thanks.

1 Answer 1

0

It is definitively possible, provided every paying wallet sign the transaction. To do this with cardano-cli, you have to build the raw transaction as usual, involving the use of different UtxO coming from different wallets.

cardano-cli transaction build ... -> tx.raw

Then, every involved wallet has to sign separately. For this you have to use

cardano-cli transaction witness --tx-body-file tx.raw ... -> tx.wit_x

And finally you have to collect all individually signed tx.wit_x parts and assemble them into a single transaction

cardano-cli transaction assemble --witness-file tx.wit_0 --witness-file tx.wit_1 ...

2
  • Thanks. Interesting, if I told you I really want to use smart contract with PAB and Nami would you say it is a dead end (at least for now)?
    – Ben Wolf
    Feb 23, 2022 at 7:54
  • 1
    I never tried to go for multi-sig with Nami (or ccvault, or others), so I'm not completely sure. However, the CIP 30 that defines the standard API to interface with them (cips.cardano.org/cips/cip30) seems to allow that thanks to partial signature. The difficult part will then to setup the required protocol to collect all the partials and to reassemble them into a single final transaction. You will need to use the cardano serialization lib for that purpose. So, definitively not a dead end. Feb 24, 2022 at 10:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.