Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

481
Views
What is "Signature Verification Failed" in Solana?

I'm trying to call a Solana Program, and when I run sendAndConfirmTransaction, it gives me Signature Verification Failed, and I'm not sure why.

const {sendAndConfirmTransaction, clusterApiUrl, Connection} = require("@solana/web3.js");

let signer = Keypair.generate();
let anotherKeypair = Keypair.generate();

let transaction = someInstruction(signer, anotherKeypair); 
let connection = new Connection(clusterApiUrl('testnet'));

sendAndConfirmTransaction(
  connection,
  transaction,
  [signer]
);
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

In Solana, you need to pass in both the keypairs of the signer, and the keypairs of the accounts you're creating.

const {sendAndConfirmTransaction, clusterApiUrl, Connection} = require("@solana/web3.js");

let signer = Keypair.generate();
let anotherKeypair = Keypair.generate();

let transaction = someInstruction(signer, anotherKeypair); 
let connection = new Connection(clusterApiUrl('testnet'));

sendAndConfirmTransaction(
  connection,
  transaction,
  [signer, anotherKeypair] // <-- If you made the keypair, you probably want it here!
);

If you're using a wallet connect library, like @solana/wallet-adapter-react, you don't have the signer, but you will still have any keypairs of accounts your generating:

const { sendTransaction } = useWallet();

const anotherKeypair = Keypair.generate(); 

const signature = await sendTransaction(transaction, connection, {
  signers: [anotherKeypair] // You probably want to pass in the keypair here!
});
about 4 years ago · Juan Pablo Isaza Report

0

This worked for me.

tx.partialSign

let tx = new Transaction();
const anotherKeypair = Keypair.generate(); 

tx.recentBlockhash =  (await connection.getLatestBlockhash("finalized")).blockhash;
tx.feePayer = new PublicKey(publicKeyStringfromWallet);
console.log(tx)

tx.partialSign(anotherKeypair) // THIS SIGNS for web3 keypair

const { signature } = await window.solana.signAndSendTransaction(tx); //THIS signs wallet keypair
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!