datalisted
Install: claude install-skill rylsherdamz-rgb/stellar-agentic-framework
# Data — Stellar Chain Queries
All blockchain queries use `useStellarData()` (frontend) or Stellar SDK / RPC directly (backend). Never raw curl or manual RPC calls.
## Source Files (published with this skill)
| File | Contents |
|------|----------|
| `templates/src/index.ts` | Express server — balance endpoint, contract query endpoint, CORS |
| `templates/src/services/stellar.ts` | RPC client — `getBalances`, `queryContract`, `getContractData`, `getEvents`, `getTransaction` |
## Agentic Kit (Frontend)
Import from `@/hooks/use-stellar-data`:
```ts
const { getBalances, queryContract, getContractData, getEvents, getTransaction, loading, error } = useStellarData();
```
| Method | Returns | Description |
|--------|---------|-------------|
| `getBalances(address)` | `{asset, balance}[]` | All trustline balances + native XLM |
| `queryContract(contractId, method, args[])` | `ScVal \| null` | Read-only contract query (simulation) |
| `getContractData(contractId, key)` | `ScVal \| null` | Raw contract storage entry |
| `getEvents(contractId, limit?)` | `Event[]` | Contract events (newest first) |
| `getTransaction(hash)` | `TxResponse \| null` | Check tx status + return value |
## Backend / API
Use the Stellar SDK directly:
```ts
import { rpc } from "@/lib/stellar-config";
const account = await rpc.getAccount(address);
const sim = await rpc.simulateTransaction(tx);
const sent = await rpc.sendTransaction(signedTx);
const events = await rpc.getEvents({ contractIds: [contractId