Workspace IndexDev Notes › Moralis — wallet snapshot via API

#216PoC

Moralis — wallet snapshot via API

Querying balance/net-worth for an address with Moralis's Wallet API.

Service — from 2026-08-03's service-discovery track (39/113: Moralis).

Why

A quick evaluation of a common build-vs-buy tradeoff in crypto tooling — instead of indexing chain data yourself (event logs, balance changes) to answer "what does this wallet hold," a hosted indexing API like Moralis answers it in one call.

How it works

Planned: a small server route calling Moralis's Wallet API (net-worth and token-balance endpoints) with a server-held API key, rendering a simple portfolio snapshot for any address a visitor enters — read-only, no wallet connection needed. Not yet built.

Related code

"""Moralis Wallet API: fetch a mock wallet snapshot (token balances) and
compute a simple portfolio summary using mock prices, instead of indexing
chain data yourself.
"""

def mock_moralis_get_wallet_tokens(address):
    # Simulates what Moralis's Wallet API would return for token balances.
    return {
        "address": address,
        "tokens": [
            {"symbol": "ETH", "balance": 1.85},
            {"symbol": "USDC", "balance": 2500.0},
            {"symbol": "LINK", "balance": 120.0},
        ],
    }


MOCK_PRICES_USD = {"ETH": 3200.0, "USDC": 1.0, "LINK": 14.5}


def summarize_portfolio(snapshot, prices):
    rows = []
    total = 0.0
    for token in snapshot["tokens"]:
        price = prices.get(token["symbol"], 0.0)
        value = token["balance"] * price
        total += value
        rows.append((token["symbol"], token["balance"], price, value))
    return rows, total


address = "0xA1b2C3d4E5f6789012345678901234567890AbCd"
snapshot = mock_moralis_get_wallet_tokens(address)
print(f"wallet snapshot for {snapshot['address']}:")

rows, total = summarize_portfolio(snapshot, MOCK_PRICES_USD)
for symbol, balance, price, value in rows:
    print(f"  {symbol:5s} balance={balance:>10.4f}  price=${price:>8.2f}  value=${value:>10.2f}")

print(f"\ntotal portfolio value: ${total:,.2f}")

← All Dev Notes · Workspace Index · Top ↑

Moralis — API로 지갑 스냅샷 조회

Moralis Wallet API로 특정 주소의 잔고·순자산 조회.

서비스 — 2026-08-03 서비스 탐방 트랙 (39/113: Moralis).

크립토 도구에서 흔히 마주치는 build-vs-buy 판단을 빠르게 검증합니다 — "이 지갑이 뭘 들고 있는가"에 답하려고 이벤트 로그·잔고 변화를 직접 인덱싱하는 대신, Moralis 같은 호스팅 인덱싱 API가 호출 한 번으로 답을 줍니다.

동작 방식

계획: 서버 라우트가 서버에 보관된 API 키로 Moralis Wallet API(순자산·토큰 잔고 엔드포인트)를 호출해, 방문자가 입력한 임의 주소에 대한 간단한 포트폴리오 스냅샷을 보여줍니다 — 읽기 전용이며 지갑 연결이 필요 없습니다. 아직 미구현.

관련 코드

"""Moralis Wallet API: fetch a mock wallet snapshot (token balances) and
compute a simple portfolio summary using mock prices, instead of indexing
chain data yourself.
"""

def mock_moralis_get_wallet_tokens(address):
    # Simulates what Moralis's Wallet API would return for token balances.
    return {
        "address": address,
        "tokens": [
            {"symbol": "ETH", "balance": 1.85},
            {"symbol": "USDC", "balance": 2500.0},
            {"symbol": "LINK", "balance": 120.0},
        ],
    }


MOCK_PRICES_USD = {"ETH": 3200.0, "USDC": 1.0, "LINK": 14.5}


def summarize_portfolio(snapshot, prices):
    rows = []
    total = 0.0
    for token in snapshot["tokens"]:
        price = prices.get(token["symbol"], 0.0)
        value = token["balance"] * price
        total += value
        rows.append((token["symbol"], token["balance"], price, value))
    return rows, total


address = "0xA1b2C3d4E5f6789012345678901234567890AbCd"
snapshot = mock_moralis_get_wallet_tokens(address)
print(f"wallet snapshot for {snapshot['address']}:")

rows, total = summarize_portfolio(snapshot, MOCK_PRICES_USD)
for symbol, balance, price, value in rows:
    print(f"  {symbol:5s} balance={balance:>10.4f}  price=${price:>8.2f}  value=${value:>10.2f}")

print(f"\ntotal portfolio value: ${total:,.2f}")

← 전체 개발 노트 · 워크스페이스 인덱스 · 맨 위 ↑