Módulos

Portfolio Analyzer

Snapshot completo de saldo, histórico de transações e score de atividade.

O PortfolioAnalyzer tira um snapshot do estado completo de uma carteira na Arc blockchain — saldo nativo, USDC, transações recentes e score de atividade.

Uso via CLI

# Analisar uma carteira
arcdevkit portfolio analyze 0xSuaCarteira

# Relatório consolidado de múltiplas carteiras
arcdevkit portfolio report wallets.json

Uso via Python

from arc_devkit.analytics.portfolio import PortfolioAnalyzer

analyzer = PortfolioAnalyzer()
snapshot = analyzer.analyze("0xSuaCarteira", blocks_back=1000)

print(f"Native balance: {snapshot.native_balance} ARC")
print(f"USDC balance:   {snapshot.usdc_balance} USDC")
print(f"Total txs sent: {snapshot.nonce}")
print(f"Activity:       {snapshot.activity_score}")  # high/medium/low/inactive
print(f"Recent txs:     {len(snapshot.recent_txs)}")

Score de atividade

ScoreCritério
highMuitas transações nos últimos N blocos
mediumAtividade moderada
lowPoucas transações
inactiveNenhuma transação no período analisado

Relatório multi-wallet

Crie um arquivo wallets.json:

[
  {"address": "0xWallet1", "label": "Treasury"},
  {"address": "0xWallet2", "label": "Operations"}
]
arcdevkit portfolio report wallets.json

Referência da API

PortfolioAnalyzer()

Sem parâmetros.

analyze(address, blocks_back=1000)

ParâmetroTipoPadrãoDescrição
addressstrEndereço da carteira
blocks_backint1000Número de blocos para escanear

Retorna: PortfolioSnapshot com os campos abaixo.

PortfolioSnapshot

CampoTipoDescrição
addressstrEndereço analisado
native_balanceDecimalSaldo nativo em ARC
usdc_balanceDecimalSaldo USDC
nonceintTotal de txs enviadas
activity_scorestrhigh/medium/low/inactive
recent_txslist[dict]Transações recentes no período

Histórico de snapshots

Cada análise é salva automaticamente em:

~/.arc_devkit/portfolio_history/{address}_{timestamp}.json

blocks_back e performance

Aumentar blocks_back aumenta o tempo de análise proporcionalmente, pois faz mais chamadas RPC. Para uso em produção, comece com 500–1000 blocos.