Skip to main content

Signing

Signing can be done in various ways. Either manually, by signing the hash of the transaction or with a wallet. There's currently two options in @kadena/client to sign with a wallet:

  1. WalletConnect (preferred)
  2. Chainweaver

Manually signing the transaction

The unsignedTransaction can be pasted into the SigData of Chainweaver.

The createTransaction function will return the transaction. The hash will be calculated and the command will be serialized.

Integrated sign request to Chainweaver desktop

Using the transaction we can send a sign request to Chainweaver.

Note: This can only be done using the desktop version, not the web version, as it's exposing port 9467 .

import { signWithChainweaver } from '@kadena/client';
 
// use the transaction, and sign it with Chainweaver
const signedTransaction = signWithChainweaver(unsignedTransaction)
  .then(console.log)
  .catch(console.error);
import { signWithChainweaver } from '@kadena/client';
 
// use the transaction, and sign it with Chainweaver
const signedTransaction = signWithChainweaver(unsignedTransaction)
  .then(console.log)
  .catch(console.error);

To send the transaction to the blockchain, continue with Send a request to the blockchain

Signing with a WalletConnect compatible wallet

There's several steps to setup a WalletConnect connections and sign with WalletConnect.

  1. Setting up the connection using ClientContextProvider.tsx
  2. Use signWithWalletConnect to request a signature from the wallet (Transaction.tsx)[https://github.com/kadena-io/wallet-connect-example/blob/2efc34296f845aea75f37ab401a5c49081f75b47/src/components/Transaction.tsx#L104 ]