Solana Address Validation
Check a Solana address: the base58 alphabet and the 32-byte key length. Solana addresses carry no checksum, so this checks the structure only.
solana-address-validate Example
{
"address": "DRpbCBMxVnDK7maPM5tGv6MvB3v1sRMC86PZ8okm21hy"
} {
"input": "DRpbCBMxVnDK7maPM5tGv6MvB3v1sRMC86PZ8okm21hy",
"valid": true,
"normalized": "DRpbCBMxVnDK7maPM5tGv6MvB3v1sRMC86PZ8okm21hy",
"format_valid": true,
"length_valid": true,
"is_system_program": false
} Inputs
| Field | Type | Required | What it is |
|---|---|---|---|
address | string | Yes | Solana address (e.g. DRpbCBMxVnDK7maPM5tGv6MvB3v1sRMC86PZ8okm21hy) |
Output fields
How reliably each field appears in a successful answer.
| Field | Type | Appears |
|---|---|---|
input | string | Always (present in every successful answer) |
valid | boolean | Always (present in every successful answer) |
normalized | string or null | Usually (present for most inputs) |
format_valid | boolean | Always (present in every successful answer) |
length_valid | boolean | Always (present in every successful answer) |
is_system_program | boolean | Always (present in every successful answer) |
How to call it
The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.
# Free tool: works without a key, within a monthly allowance. Add your key for more.
curl -X POST https://api.strale.io/v1/do \
-H 'Content-Type: application/json' \
-d '{
"capability_slug": "solana-address-validate",
"inputs": {
"address": "DRpbCBMxVnDK7maPM5tGv6MvB3v1sRMC86PZ8okm21hy"
},
"max_price_cents": 5
}' {
"tool": "strale_execute",
"arguments": {
"slug": "solana-address-validate",
"inputs": {
"address": "DRpbCBMxVnDK7maPM5tGv6MvB3v1sRMC86PZ8okm21hy"
},
"max_price_cents": 5
}
} import { Strale } from "straleio";
const strale = new Strale({ apiKey: process.env.STRALE_API_KEY! });
const result = await strale.do({
capability_slug: "solana-address-validate",
inputs: {
"address": "DRpbCBMxVnDK7maPM5tGv6MvB3v1sRMC86PZ8okm21hy"
},
max_price_cents: 5,
}); import os
from straleio import Strale, DoRequest
strale = Strale(api_key=os.environ["STRALE_API_KEY"])
result = strale.do(DoRequest(
capability_slug="solana-address-validate",
inputs={
"address": "DRpbCBMxVnDK7maPM5tGv6MvB3v1sRMC86PZ8okm21hy",
},
max_price_cents=5,
)) Limitations
Format only — no on-chain check, no checksum
Checks only that the base58 input decodes to 32 bytes; Solana addresses have no checksum. Single-character typos can remain structurally valid and are not detected.
What to do instead: For high-stakes flows, verify the address controls funds via an on-chain lookup before sending.
Cannot distinguish wallets, PDAs, and program accounts
All Solana account addresses are 32 bytes regardless of whether they are user wallets, Program-Derived Addresses (PDAs), or program accounts. This validator confirms the shape but does not classify.