Connect to Sui via Vezgo API

Accounts

Positions

Transactions

Support for Accounts, Positions and Transactions enabled.

  • Positions and transactions support added
  • Fetches max 15k transactions per sync

Full List of Integrations

Data mapping

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

DataWhere to read itSource on Sui
Account & walletaccount.wallets[].addressThe connected Sui address (0x-prefixed, 32 bytes). One address is one account; wallet.address is the stable identity reused across syncs and reconnects.
Balances / positionsaccount.balances[]Native SUI plus every other coin the address holds, from the live on-chain snapshot. Each balance has ticker, amount, decimals and fiat_value (USD), and carries ticker_address — the coin's full Sui type. Amounts are already scaled by the coin's own decimals.
TransactionsGET /accounts/:id/transactionsOne Vezgo transaction per Sui transaction block, with every coin movement belonging to the address in parts[]. See "How to read a transaction" below.
Assets / securitiesbalance.ticker · balance.ticker_addressNative SUI uses ticker SUI. Every coin is identified by ticker_address — its fully-qualified Move coin type, e.g. 0x2::sui::SUI — which is the value to match on: tickers come from on-chain coin metadata and are not unique, so two unrelated coins can publish the same symbol.

How to read a transaction

Sui groups activity into transaction blocks, each identified by a digest. Vezgo emits one transaction per block: read the per-coin movements from parts[] and the gas from fees[]:

  • Coin movements — parts[] holds one entry per balance change owned by the connected address (direction sent/received, ticker, amount, fiat_value). provider_ticker on each part is the full Sui coin type, so a part identifies its coin unambiguously even when two coins share a ticker.
  • A block that moves several coins — a swap, or a transfer that also pays gas — produces one transaction with several parts, not several transactions.
  • Top-level amount and symbol describe the native SUI position only: symbol is always SUI and quantity is the absolute net SUI change for the block. Per-coin detail lives in parts[].
  • Direction — misc.origin_type is always transfer; the transaction's own type is derived from the net SUI change (deposit when it increased, withdrawal when it decreased, unknown when SUI did not move, e.g. a pure token transfer). Read parts[].direction for what actually moved.
  • Gas — fees[] in SUI, computed as computation + storage − storage rebate, so a heavily-rebated block can report a zero fee. The digest is in transaction_hash and misc.origin_id.
// One Vezgo transaction = one Sui transaction block (tx.misc.origin_id = digest)
const digest = tx.misc.origin_id;      // == tx.transaction_hash
const kind   = tx.misc.origin_type;    // always "transfer" on Sui

const moves = tx.parts ?? [];          // one entry per coin movement for this address
const gas   = tx.fees?.[0];            // gas in SUI (computation + storage − rebate)

// Identify a coin by its Move type, not its ticker:
const byType = moves.map((p) => [p.provider_ticker, p.amount]);
// e.g. ["0x2::sui::SUI", "1.5"]

// tx.type reflects the net SUI change only — read parts[].direction per coin.
// Sui has no tokenTransfers / nftTransfers / internalTransfers arrays.
Where to read itAttributesWhat it is
tx.parts[]direction, ticker, provider_ticker (coin type), amount, fiat_valueOne per coin movement belonging to the address. amount is positive; direction carries the sign.
tx.fees[0]ticker ("SUI"), amount, fiat_valueGas for the block, net of the storage rebate.
tx.from_address · tx.to_addressaddress stringsOn a deposit, to_address is the connected wallet and from_address the block's sender; on a withdrawal, from_address is the connected wallet.

misc.origin_type is transfer for every Sui transaction; use tx.type and parts[].direction to tell movements apart:

  • transfer

Supported

  • Native SUI balances and transfers
  • All coin balances and transfers, identified by their Move coin type
  • Multi-coin transaction blocks (e.g. swaps) as a single transaction with several parts
  • Gas fees (reported in SUI, net of the storage rebate)
  • USD fiat valuation for balances and for priced coins in transaction parts

Notes & limitations

  • Match coins on ticker_address (the Move coin type), not on ticker — coin metadata symbols are self-declared on Sui and are not unique.
  • A transaction's top-level symbol is always SUI and its quantity is the net SUI change; per-coin amounts are only in parts[].
See the full Vezgo object reference

Try to connect to Sui 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