Connect to Solana via Vezgo API

NFT Support

Accounts

Positions

Transactions

Support for Accounts, Positions, Transactions and Nfts enabled.

  • NFT, SPL tokens and staking support enabled.
  • Staked balance and positions support enabled.
  • Transaction support enabled.
  • Retrieves a maximum of 10000 transactions per account.
  • Token transfers support enabled.
  • All transfers belonging to same hash will be consolidated into one transaction and token transfers will be present in misc attribute

Full List of Integrations

Data mapping

A field-level guide to the Vezgo API data for Solana — what each attribute means and where to read it — so you can map it into your own system.

DataWhere to read itSource on Solana
Account & walletaccount.wallets[].addressThe connected Solana wallet address (base58). One address is one account; wallet.address is the stable identity reused across syncs and reconnects.
Balances / positionsaccount.balances[]Native SOL, SPL tokens, staked SOL, and NFTs (when sync_nfts is on) from the live on-chain snapshot. Each balance has ticker, amount, decimals and fiat_value (USD); SPL tokens add ticker_address (the token mint); staked SOL uses asset_type "staked".
TransactionsGET /accounts/:id/transactionsNative SOL transfers, SPL token transfers and SOL staking, consolidated per signature. See "How to read a transaction" below.
Assets / securitiesbalance.ticker · balance.ticker_addressNative SOL uses ticker SOL. SPL tokens are keyed by ticker_address — the token mint address (Solana's equivalent of a contract address). For NFTs the mint and Metaplex metadata are in misc.metadata (mint, standard, metadata_uri, update_authority, …) — not ticker_address — and balance.ticker is a synthesized symbol_name.

How to read a transaction

Vezgo consolidates the movements in one on-chain transaction (one signature) into a single Vezgo transaction. Read the native SOL movement from the transaction itself, and SPL token movements from misc:

  • Native SOL — parts[0] always exists (ticker "SOL"; amount 0 when no net SOL moved) and holds the wallet's net SOL change with the network fee already subtracted. The fee is in fees[] (SOL) only when the connected wallet paid it.
  • SPL token transfers — misc.tokenTransfers[]. On Solana, NFTs are SPL tokens, so NFT movements also appear here.
  • SOL staking — stake / unstake appear as their own transactions (deposit / withdrawal of SOL).
  • The signature is in transaction_hash and misc.origin_id; the on-chain program is in misc.source.
// One Vezgo transaction = one on-chain signature (tx.misc.origin_id)
const sig  = tx.misc.origin_id;        // == tx.transaction_hash (the signature)
const kind = tx.misc.origin_type;      // upstream provider's transaction type (e.g. TRANSFER, SWAP)

const native = tx.parts?.[0];          // native SOL transfer (ticker "SOL")
const gas    = tx.fees?.[0];           // network fee in SOL (only if the wallet paid it)

const tokenTransfers = tx.misc.tokenTransfers ?? [];  // SPL token movements

if (tx.misc.failed) { /* failed on-chain — no value moved, fee still spent */ }
// Solana has no internalTransfers / nftTransfers arrays (those are EVM-only).
Where to read itAttributesWhat it is
tx.parts[0]direction, ticker ("SOL"), amount, fiat_value, from_address, to_addressNative SOL transfer.
tx.fees[0]ticker ("SOL"), amount, fiat_valueNetwork fee (SOL) — present only when the connected wallet paid it.
tx.misc.tokenTransfers[]direction, ticker, token_address (mint), provider_ticker, amount, fiat_value, from_address, to_addressSPL token movements. token_address is the SPL mint.

misc.origin_type is the upstream provider's transaction type, passed through unchanged (UPPER_SNAKE_CASE). Treat the set as open-ended and handle unknown values. Illustrative values:

  • TRANSFER
  • SWAP
  • NFT_SALE
  • NFT_MINT
  • UNKNOWN

Supported

  • Native SOL balances and transfers
  • SPL token balances and transfers
  • SOL staking positions
  • NFTs (Metaplex) — when sync_nfts is enabled
  • DEX swaps
  • Network fees (reported in SOL)
  • USD fiat valuation for native SOL and priced SPL positions (NFTs are unvalued)

Notes & limitations

  • SPL and NFT balances reflect the current on-chain snapshot.
  • Native SOL and staked SOL are separate balances that share ticker "SOL" — tell them apart via asset_type ("staked") or provider_ticker ("SOL.staked"), not ticker. The staked-SOL balance is emitted every sync (amount 0 when not staking), so its presence alone does not mean active staking.
  • SPL tokens with no on-chain metadata (missing symbol/name) are skipped; SPL balances may carry misc.is_verified_contract (false for unverified mints).
  • decimals is best-effort — null for most SPL tokens and NFTs; amount is already in whole-token units.
  • NFT balances are unvalued (fiat_value null); SPL token-transfer legs in misc.tokenTransfers may have fiat_value 0.
  • A maximum of 5,000 transactions are imported per account (a lifetime cap, not per-sync); older history beyond that is not fetched.
See the full Vezgo object reference

Try to connect to Solana in our Demo Sandbox

Open Demo

Let's get you started

To get your API Keys, sign up on the portal or reach out to the team at sales@vezgo.com

You have questions? Contact us