Rust-based transaction parser that converts raw blockchain transactions into human-readable VisualSign payloads.
VisualSign transforms opaque transaction data (hex strings, base64 blobs) into structured, human-readable JSON that clearly shows what a transaction will do. See the full documentation.
- Ethereum (+ L2s: Arbitrum, Optimism, Base, Polygon)
- Solana
- Sui
- Tron
See the Adding a New Chain guide to add support for another blockchain. Join the community on Telegram if you're interested in contributing.
# Parse a transaction from hex
cargo run --bin parser_cli -- --chain ethereum --network ETHEREUM_MAINNET --output human -t <transaction_hex>
# Try a real Uniswap swap from the test fixtures
cargo run --bin parser_cli -- --chain ethereum --network ETHEREUM_MAINNET --output human \
-t "$(cat chain_parsers/visualsign-ethereum/tests/fixtures/1559.input)"See the Quickstart for more examples and the Parser CLI reference for all options.
The parser_gateway is an HTTP REST proxy (Turnkey-compatible) that forwards requests to the gRPC parser. It exposes the same /visualsign/api/v1/parse endpoint used in production, making it useful for local development and integration testing.
Start the gRPC server and gateway:
# Terminal 1: start the gRPC parser server
cd src && make grpc-server
# Terminal 2: start the HTTP gateway
cd src && make parser_gatewayEnvironment variables:
| Variable | Default | Description |
|---|---|---|
GATEWAY_PORT |
8080 |
HTTP port the gateway listens on |
GRPC_ADDR |
http://127.0.0.1:44020 |
Address of the gRPC parser server |
Example request:
curl -X POST http://localhost:8080/visualsign/api/v1/parse \
-H "Content-Type: application/json" \
-d '{"request": {"unsigned_payload": "0x02f8...", "chain": "CHAIN_ETHEREUM"}}'Docker usage:
# Build the gateway image (run from the repo root, not src/)
make non-oci-docker-images
# Run the gateway container (assumes gRPC server is accessible at host.docker.internal:44020)
docker run -p 8080:8080 -e GRPC_ADDR=http://host.docker.internal:44020 anchorageoss-visualsign-parser/parser_gatewayFull documentation at https://visualsign.dev:
- Quickstart — Test your DApp's transactions
- Wallet Integration — Integrate the parser into your wallet
- API Reference — gRPC service definition
- Field Types — VisualSign JSON schema
- Contributing a Visualization — Add support for your protocol
See the Contributing guide and About page for governance details.