시작하기

토큰 데이터 읽기

Last updated November 28, 2025

Solana 블록체인에서 대체 가능 토큰 정보를 가져옵니다.

토큰 메타데이터 가져오기

민트 주소를 사용하여 토큰의 메타데이터를 가져옵니다. 이름, 심볼, 소수점 자릿수, 공급량을 포함한 온체인 토큰 정보를 조회합니다.

1// npm install @metaplex-foundation/mpl-token-metadata @metaplex-foundation/umi @metaplex-foundation/umi-bundle-defaults
2import { publicKey } from '@metaplex-foundation/umi'
3import { createUmi } from '@metaplex-foundation/umi-bundle-defaults'
4import {
5 fetchDigitalAsset,
6 mplTokenMetadata
7} from '@metaplex-foundation/mpl-token-metadata'
8
9// Initialize Umi with your RPC endpoint
10const umi = createUmi('https://api.devnet.solana.com').use(mplTokenMetadata())
11
12// The mint address of the token you want to fetch
13const mintAddress = publicKey('YOUR_TOKEN_MINT_ADDRESS')
14
15// Fetch the token's metadata from the blockchain
16const asset = await fetchDigitalAsset(umi, mintAddress)
17
18console.log('Token Name:', asset.metadata.name)
19console.log('Token Symbol:', asset.metadata.symbol)
20console.log('Token URI:', asset.metadata.uri)
21console.log('Decimals:', asset.mint.decimals)
22console.log('Supply:', asset.mint.supply)

파라미터

파라미터설명
mintAddress가져올 토큰 민트 주소

토큰 잔액 가져오기

Associated Token Account 또는 DAS API를 사용하여 특정 지갑의 토큰 잔액을 가져옵니다.

1// npm install @metaplex-foundation/umi @metaplex-foundation/umi-bundle-defaults @metaplex-foundation/mpl-toolbox
2import { publicKey } from '@metaplex-foundation/umi'
3import { createUmi } from '@metaplex-foundation/umi-bundle-defaults'
4import {
5 findAssociatedTokenPda,
6 fetchToken
7} from '@metaplex-foundation/mpl-toolbox'
8
9const umi = createUmi('https://api.devnet.solana.com')
10
11const mintAddress = publicKey('YOUR_TOKEN_MINT_ADDRESS')
12const walletAddress = publicKey('WALLET_ADDRESS')
13
14// Find the Associated Token Account
15const tokenAccount = findAssociatedTokenPda(umi, {
16 mint: mintAddress,
17 owner: walletAddress,
18})
19
20// Fetch the token account data
21const tokenData = await fetchToken(umi, tokenAccount)
22
23console.log('Token Balance:', tokenData.amount)
24console.log('Mint:', tokenData.mint)
25console.log('Owner:', tokenData.owner)

소유자별 모든 토큰 가져오기

DAS API를 사용하여 지갑 주소가 소유한 모든 대체 가능 토큰을 조회합니다.

1// npm install @metaplex-foundation/umi @metaplex-foundation/umi-bundle-defaults @metaplex-foundation/digital-asset-standard-api
2import { dasApi } from '@metaplex-foundation/digital-asset-standard-api';
3import { publicKey } from '@metaplex-foundation/umi';
4import { createUmi } from '@metaplex-foundation/umi-bundle-defaults';
5
6const umi = createUmi('https://api.devnet.solana.com').use(dasApi())
7
8const walletAddress = publicKey('WALLET_ADDRESS')
9
10// Get all fungible assets owned by the wallet using searchAssets
11// Using interface: 'FungibleToken' filters server-side (more efficient)
12const result = await umi.rpc.searchAssets({
13 owner: walletAddress,
14 interface: 'FungibleToken',
15 limit: 1000,
16 displayOptions: {
17 showFungible: true
18 }
19})
20
21const fungibleTokens = result.items
22
23console.log(`Found ${fungibleTokens.length} fungible tokens\n`)
24
25fungibleTokens.forEach(token => {
26 const decimals = token.token_info?.decimals || 0
27 const rawBalance = token.token_info?.balance || 0
28 const balance = Number(rawBalance) / Math.pow(10, decimals)
29
30 console.log(`${token.content.metadata?.name} (${token.content.metadata?.symbol})`)
31 console.log(` Mint: ${token.id}`)
32 console.log(` Balance: ${balance.toLocaleString()}`)
33})

접근 방식 비교

기능직접 RPCDAS API
속도대량 쿼리에서 느림대량 쿼리에 최적화
데이터 신선도실시간거의 실시간 (인덱싱됨)
검색 기능제한적고급 필터링
사용 사례단일 토큰 조회포트폴리오 보기, 검색

  • 포트폴리오 보기에 DAS 사용 - 사용자가 소유한 모든 토큰을 표시할 때, DAS API는 여러 RPC 호출보다 훨씬 빠릅니다
  • DAS에서 showFungible 설정 - showFungible: true를 설정하세요. 그렇지 않으면 일부 RPC는 NFT 데이터만 반환합니다

관련 가이드