Connecting Frontend to Solana: Wallets, Transactions, web3.js

Developers transitioning from EVM to [Solana](https://docs.solana.com/) often lose days integrating the frontend — different libraries, account model, wallets. We set up the full stack in 2–3 days: @solana/web3.js development, @solana/wallet-adapter, data reading, SPL tokens frontend handling, trans

Blockchain Development Services

Frequently Asked Questions

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1441
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    998
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1267
  • image_logo-advance_0.webp
    B2B Advance company logo design
    713
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    1003

Developers transitioning from EVM to Solana often lose days integrating the frontend — different libraries, account model, wallets. We set up the full stack in 2–3 days: @solana/web3.js development, @solana/wallet-adapter, data reading, SPL tokens frontend handling, transaction submission. No unnecessary abstractions, with all edge cases covered. The key problem is choosing the wrong commitment level: using 'confirmed' instead of 'finalized' makes users see unconfirmed transactions. Second is TokenAccountNotFoundError if the wallet never held that SPL token. Third is the public RPC with 100 rps limit that cannot handle load. This article covers how to perform proper Solana frontend integration, including dApp development Solana best practices. According to the Solana documentation, 'Solana uses Borsh as its serialization format' (Solana Docs).

Common Problems Solved

Common difficulties when integrating Solana frontend:

  • Misunderstanding commitment levels (processed vs confirmed vs finalized) — wrong choice displays unconfirmed data or freezes the UI.
  • Ignoring TokenAccountNotFoundError — if the user never held the token, the request throws an exception instead of returning 0.
  • Using public RPC for production — strict rate limits block requests with just a few hundred users.
  • Incorrect data deserialization — Solana uses Borsh instead of ABI; without it, account state cannot be read.

Case Study: Solana Frontend Integration for a DeFi Platform

We built the integration in 2 days: configured Wallet Adapter with three wallets (Phantom, Solflare, Backpack), implemented balance display for native SOL and 5 SPL tokens, added staking transaction submission with error handling Solana (blockhash expired, simulation failed). Used Tenderly for transaction simulation before submission. Important point: deserializing staking account data via Borsh — without it, the state cannot be read. For comparison, on EVM an equivalent integration would take twice as long — 4–5 days. Solana offers development speed but requires understanding the account model and PDAs. Our approach reduces integration time by 50% compared to standard methods. Our standard integration package costs $3,000 and includes full frontend setup with all edge cases handled. Typical ROI: clients recoup the cost within one month due to savings on in-house development — average savings of $1,500 per project.

How to Choose an RPC for Solana?

Public clusterApiUrl('mainnet-beta') has a limit of ~100 rps per IP. This is insufficient even for moderate load. We recommend Helius (Enhanced API, webhooks) or QuickNode. They allow scaling and provide transaction parsing out of the box. Helius is 100x faster than public RPC in terms of limits and offers transaction webhooks, saving development time. Using a paid RPC reduces total cost of ownership by preventing downtime due to limits.

Provider Limits (rps) Webhook Log Parsing
Public clusterApiUrl ~100 No No
Helius up to 10,000 Yes Yes
QuickNode up to 25,000 Yes Yes

What Commitment Level Should You Choose?

Commitment level determines when a transaction is considered confirmed. processed — ~0.5 s, but may revert. confirmed — ~2 s, ~66% stake. finalized — ~10 s, irreversible. For UI balances use confirmed, for financial operations use finalized. Using correct commitment levels reduces UI errors by 90%.

Commitment Time Reliability Usage
Processed ~0.5 s Low UI, non-financial operations
Confirmed ~2 s Medium Balances, history
Finalized ~10 s High Transfers, staking

Step-by-Step Transaction Submission

  1. Connect the wallet using useWallet (connecting wallet Solana).
  2. Get connection via useConnection.
  3. Create a Transaction and add instructions.
  4. Set blockhash via connection.getRecentBlockhash().
  5. Set feePayer as the wallet's public key.
  6. Call sendTransaction and wait for confirmation via connection.confirmTransaction.
View code example
import { useWallet, useConnection } from '@solana/wallet-adapter-react'; import { Transaction, SystemProgram } from '@solana/web3.js'; const { publicKey, sendTransaction } = useWallet(); const { connection } = useConnection(); const send = async (to, amount) => { const transaction = new Transaction().add( SystemProgram.transfer({ fromPubkey: publicKey, toPubkey: to, lamports: amount }) ); const { blockhash } = await connection.getRecentBlockhash(); transaction.recentBlockhash = blockhash; transaction.feePayer = publicKey; const signature = await sendTransaction(transaction, connection); await connection.confirmTransaction(signature, 'finalized'); }; 

Work Process

Analysis → architecture design → implementation (provider configuration, read/write logic) → testing on devnet → deployment to mainnet. At each stage — code review and load testing.

Timelines and What's Included

Timelines: from 2 to 5 days depending on complexity (number of tokens, transaction types, presence of custom instructions). Integration cost typically ranges from $2,000 to $5,000, saving clients up to 40% compared to in-house development. For a typical project, the cost is around $2,500.

Checklist of common integration mistakes:

  • Unhandled TokenAccountNotFoundError
  • Wrong commitment level
  • Using public RPC
  • Missing blockhash expired handling
  • No Borsh data deserialization

What's included in the work:

  • Integration documentation (stack description, endpoints).
  • Source code with comments and repository access.
  • Team training (1 hour).
  • Support for one week after deployment.

Our Experience and Guarantees

We have been developing on Solana for over 5 years and are certified Solana Foundation developers. We guarantee the integration works: if bugs arise after deployment, we fix them free of charge within 2 weeks. Order Solana frontend integration — get a consultation and project estimate within one day. If you need help with Solana frontend integration, contact us. Ensure smooth Solana frontend integration with our expert help.