REGEXVAULTv2.0
Finance/Crypto
Verified Safe

Solana Wallet Address Regex for Java

/^[1-9A-HJ-NP-Za-km-z]{32,44}$/

What this pattern does

This page provides a lightweight, single-purpose regular expression for matching solana wallet address, ported and verified for Java. Financial data validation has zero tolerance for false negatives — a missed invalid entry can corrupt downstream calculations. The snippet below is ready to drop into your Java project — whether you're validating in a Spring Boot controller, a Jakarta EE service, or a standalone utility class.

Java Implementation

Java
// Solana Wallet Address
// ReDoS-safe | RegexVault — Finance > Crypto

import java.util.regex.Pattern;

public class SolanaWalletAddressValidator {
    private static final Pattern PATTERN =
        Pattern.compile("^[1-9A-HJ-NP-Za-km-z]{32,44}$");

    public static boolean validate(String input) {
        return PATTERN.matcher(input).matches();
    }

    // Example
    public static void main(String[] args) {
        System.out.println(validate("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin")); // true
    }
}

Test Cases

Matches (Valid)
Rejects (Invalid)
9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2
4Nd1m6Ea2x3jJhTMKvFrpF4MLhFQ6P1SxcTW3gj7YDWL9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin1

When to use this pattern

This pattern is drawn from the Finance > Crypto category and carries a ReDoS-safe certification. That matters for Java developers because critical in Java applications since the JVM regex engine uses backtracking and is susceptible to ReDoS without careful pattern design. RegexVault audits patterns against known backtracking attack vectors, ensuring you have the necessary context before using this regex in a high-stakes production environment.

Common Pitfalls

Solana program accounts (smart contracts) have the same address format as wallet accounts. Distinguish by checking for an executable flag on-chain, not by address format.

Technical Notes

Solana uses Base58 (excludes 0, O, I, l). Valid addresses are 43-44 characters encoding a 32-byte Ed25519 public key. Program-derived addresses (PDAs) follow the same format but are not derived from private keys.

Have a pattern that belongs in the vault?

Submit it for review — community-verified patterns get credited to your GitHub handle. Free submissions join the queue. Priority review available for $15.

Submit a Pattern