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
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.
| Data | Where to read it | Source on Sui |
|---|---|---|
| Account & wallet | account.wallets[].address | The connected Sui address (0x-prefixed, 32 bytes). One address is one account; wallet.address is the stable identity reused across syncs and reconnects. |
| Balances / positions | account.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. |
| Transactions | GET /accounts/:id/transactions | One Vezgo transaction per Sui transaction block, with every coin movement belonging to the address in parts[]. See "How to read a transaction" below. |
| Assets / securities | balance.ticker · balance.ticker_address | Native 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 it | Attributes | What it is |
|---|---|---|
tx.parts[] | direction, ticker, provider_ticker (coin type), amount, fiat_value | One per coin movement belonging to the address. amount is positive; direction carries the sign. |
tx.fees[0] | ticker ("SUI"), amount, fiat_value | Gas for the block, net of the storage rebate. |
tx.from_address · tx.to_address | address strings | On 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[].
Try to connect to Sui in our Demo Sandbox
Open DemoLet's get you started
To get your API Keys, sign up on the portal or reach out to the team at sales@vezgo.com