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

499
Views
TypeError: y.pubkey.toBase58 is not a function

I am trying to send 1 solana

I have this code

But it throws an error: Uncaught (in promise) TypeError: y.pubkey.toBase58 is not a function at transaction.ts:264:33

Help solve this error

async function connectWallet() {

    let provider = null

    if ("solana" in window) {
        provider = window.solana;
        if (provider.isPhantom) {
            console.log('provider', provider)
        }
    } else {
        window.open("https://phantom.app/", "_blank");
    }

    publicKey = null

    if (provider != null) {
        try {
            const resp = await window.solana.connect();
            publicKey = resp.publicKey.toString();

        } catch (err) {
            // { code: 4001, message: 'User rejected the request.' }
            console.log(err)
        }
    }

    if (publicKey != null) {
        const message = `Sign below to authenticate`;
        const encodedMessage = new TextEncoder().encode(message);
        const signedMessage = await window.solana.request({
            method: "signMessage",
            params: {
                message: encodedMessage,
                display: "utf-8",
            },
        });

        var recieverWallet = new solanaWeb3.PublicKey("4iSD5Q6AnyhRHu6Uz4u1KAzXh3TwNwwQshEGhZbEXUTw");


        const connection = new solanaWeb3.Connection(solanaWeb3.clusterApiUrl("mainnet-beta"));

        var transaction = new solanaWeb3.Transaction().add(
            solanaWeb3.SystemProgram.transfer({
              fromPubkey: publicKey,
              toPubkey: recieverWallet,
              lamports: solanaWeb3.LAMPORTS_PER_SOL
            }),
        );              

        transaction.feePayer = publicKey;
        let blockhashObj = await connection.getRecentBlockhash();
        transaction.recentBlockhash = await blockhashObj.blockhash;

        if(transaction) {
          console.log("Txn created successfully");
        }                

        let signed = await provider.signTransaction(transaction);
        let signature = await connection.sendRawTransaction(signed.serialize());
        await connection.confirmTransaction(signature);
    }
}

i think the problem is in this line let signed = await provider.signTransaction(transaction);

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

The problem is that your publicKey variable is a string and not a PublicKey, so when trying to compile your transaction, the compilation fails with the TypeError: y.pubkey.toBase58 is not a function at transaction.ts:264:33.

Instead, you can do:

publicKey = resp.publicKey;

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!