voxelithic-interfaces
v0.8.0
Published
TypeScript types, contract ABIs and verified addresses for Voxelithic on Robinhood Chain (4663)
Maintainers
Readme
voxelithic-interfaces
TypeScript types, contract ABIs and verified addresses for Voxelithic on Robinhood Chain (4663).
Install
npm install voxelithic-interfacesUsage
import {
CHAIN_ID, ROUTER, QUOTER, ROUTER_V4, QUOTER_V4,
TOKENS, SYMBOLS, addressOf,
VoxRouterABI,
} from 'voxelithic-interfaces'
addressOf('NVDA') // 0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec
TOKENS.USDG.decimals // 6
CHAIN_ID // 4663Why addressOf matters
On this chain a ticker is not an identifier. 39 contracts answer to a stock symbol that is not theirs, and one of them holds more than half a million dollars of liquidity while trading two cents a day. Resolving a symbol by searching an indexer will eventually hand you the wrong address.
TOKENS is generated from the router's own configuration and every entry is
checked against the chain before it is written: symbol() and decimals()
must match, and an address with no contract fails the build. So the addresses
in this package cannot drift from the ones the router actually trades.
The full picture of what else carries these tickers is at voxelithic.xyz/registry, machine readable at /tokens.json.
Exports
| Export | What it is |
|---|---|
| CHAIN_ID | 4663 |
| ROUTER, QUOTER | Uniswap v3 style venues, deployed and verified |
| ROUTER_V4, QUOTER_V4 | Uniswap v4 singleton branch |
| ROUTER_SPLIT | splits one order across pools of both families in a single transaction |
| UNISWAP_V4_SINGLETON | the v4 pool manager |
| TREASURY | fee recipient; everything it receives is swapped into VOXEL and burned |
| VOXEL, BURN_SINK | the bought-back token and the address it is burned to |
| TOKENS, SYMBOLS, addressOf | canonical token set |
| VoxRouterABI, VoxQuoterABI, VoxRouterV4ABI, VoxQuoterV4ABI, VoxRouterMixedABI, VoxTreasuryV2ABI | ABIs taken from the Foundry build artifacts, not retyped |
| Hop, Route, Quote, PoolKey | request and response shapes |
Or skip the install
The same routing is available over HTTP, with no package and no key:
curl 'https://voxelithic.xyz/api/v1/quote?tokenIn=USDG&tokenOut=SPY&amountIn=10'/tokens and /venues mirror the exports above, /quote compares every direct
pool that can actually take the size, /swap returns an unsigned transaction and
/verify reads what a fill really did from its receipt.
The API holds no keys and cannot broadcast. Spec and service level: openapi.json.
Inside an agent, the same calls arrive as MCP tools:
{ "mcpServers": { "voxelithic": { "command": "npx", "args": ["-y", "voxelithic-mcp"] } } }Regenerating the token set
node scripts/gen-tokens.mjs /path/to/app/config.jsEvery address is verified against mainnet as it is written. The script exits non-zero and leaves the file untouched if anything fails.
Tests
npm test # imports the built package and checks its shape
npm run test:onchain # every address in the package must exist on mainnetThe first suite runs against dist, not the sources, because that is where a
published package actually breaks. The second one is why the addresses here can
be trusted: an address with no contract, a mismatched symbol or wrong decimals
fails the run. Both are wired into CI on every push.
Contracts
| Contract | Address |
|---|---|
| VoxRouter | 0x87cD7EbE8c213455e5e5a8554657D5f294a82e64 |
| VoxQuoter | 0x9616627E871c96e38cb21b9551F62Ed93366bE1B |
| VoxRouterV4 | 0x290b9b46308f7a3B80A5F62214B426d3bfAfaab5 |
| VoxQuoterV4 | 0x5858F06894623eF4862103A747074E5AA3436d4F |
| VoxRouterMixed | 0xda61673A51d6EA2c02C335185399Ddb818bdBC6f |
| VoxTreasuryV2 | 0x25A99c317f3125Fc6cd245197028f49CfF56612E |
All six are verified on Blockscout.
VoxTreasuryV2 replaces the treasury at 0xDfC6004E…, which routed buybacks
through the v3 router. There is exactly one v3 pool holding VOXEL on this chain
and it is empty, so that contract could never complete a buyback. The old
address stays on chain but no longer receives the fee.
License
MIT
