SplitKey is a zero-trust vanity address generator. It creates custom blockchain addresses with desired suffixes — without ever exposing your private key to the server.
The core idea is simple: you send only your public key to the server. The server performs a computationally intensive search and returns a small number — a tweak. You apply this tweak to your private key locally, on your device. The resulting key pair produces an address that ends with your desired suffix.
SplitKey supports all major blockchains: TON, Bitcoin, Ethereum, TRON, Solana, and Sui. Each chain uses its native elliptic curve — secp256k1 or Ed25519.
SplitKey uses EC (Elliptic Curve) point arithmetic to split the key generation process between client and server. The server performs the search without ever knowing your private key.
The key insight: instead of expensive scalar multiplication per iteration, SplitKey uses incremental point addition. Each thread maintains a running point and steps it by a constant offset — making the search orders of magnitude faster than brute-force approaches.
BTC ETH TRON
TON SOL SUI
Ed25519 caveat: The tweaked scalar is not a valid Ed25519 seed. Backup requires the original seed phrase + tweak value. Both pieces are needed for recovery.
SplitKey is built on a zero-trust architecture. The server is treated as an untrusted compute resource — it performs the search but never has access to your private key material.
- Compressed public key
- Desired suffix requirements
- Generated tweak offsets
- Search progress and speed
- Private keys
- Seed phrases (mnemonics)
- Secret prefix (if used)
- Final derived key
The Saltix Wallet app implements multiple layers of sensitive data protection:
SecureField— double-confirmed input for sensitive values (tweak, prefix).screenshotProtected()— blur overlay when screen recording or mirroring is detectedSecureMemory.wipe()— zeroes out sensitive strings before deallocationKeychain— stored with kSecAttrAccessibleWhenUnlockedThisDeviceOnly
SplitKey supports 6 blockchains across two elliptic curves. Each chain uses optimized address derivation for maximum search speed.
| Network | Curve | Address Format | Wallet Types |
|---|---|---|---|
| TON | Ed25519 | Base64 URL-safe | V3R2 V4R2 |
| BTC | secp256k1 | Base58 / Bech32 | Legacy Nested Native Taproot |
| ETH | secp256k1 | 0x hex (EIP-55) | — |
| TRON | secp256k1 | T... Base58Check | — |
| SOL | Ed25519 | Base58 | — |
| SUI | Ed25519 | 0x hex (Blake2b) | — |
Bitcoin supports 4 address types: Legacy (1...), Nested SegWit (3...), Native SegWit (bc1q...), and Taproot (bc1p...). You can search across all types simultaneously.
An optional extra privacy layer for secp256k1 chains (BTC, ETH, TRON). The user splits the tweak into a secret prefix and a server-discovered offset, so the server can't even link the search to a specific public key.
adjusted_pubkey = pubkey_of(privkey + prefix * G). This adjusted key is sent to the server.full_tweak = prefix + offset. Final key: privkey + full_tweak (mod n).secp256k1 only: The prefix feature is not available for Ed25519 chains (TON, SOL, SUI). Ed25519 key derivation uses clamped scalars and CryptoKit doesn't expose the raw scalar operations needed for prefix adjustment.
The Saltix iOS Wallet has deep integration with the SplitKey generator. Two methods are available: QR scanning (primary) and manual tweak entry (advanced).
The primary integration method. After configuring the search on splitkey.saltix.io, a QR code is displayed. The Saltix Wallet scans it and handles everything automatically.
The wallet parses the URL scheme, loads session parameters from the API, displays a confirmation screen, and upon approval — sends the compressed public key to the server. The search begins automatically.
For users who obtained a tweak from the web interface and want to apply it manually. Available under Add Wallet → From Current Seed → Vanity.
- Select the target blockchain (TON, BTC, ETH, TRON, SOL, SUI)
- Enter the 16-character hex tweak (double confirmation required)
- Optionally verify the expected vanity address
- Wallet creates a new vanity child wallet linked to the parent seed
Vanity wallets are always linked to a parent seed wallet via parentWalletID. They appear as children in the wallet switcher, indented with blockchain badges.
Two API surfaces are available: the Session API (for QR-based wallet integration) and the Direct API (for programmatic access).
Base URL: https://splitkey.saltix.io/api
Creates a new search session with specified parameters. Returns a session ID for QR code generation. Session expires after 600 seconds.
Submits the compressed public key and starts the search. The Rust engine is spawned as a subprocess.
Poll for search progress and results. Recommended interval: 1-2 seconds.
Cancels the running search and terminates the Rust CLI subprocess.
Launch a search directly without creating a session. Useful for programmatic access.
Check the status and results of a running search task.
Returns server statistics: CPU cores, active tasks, load average.
SplitKey achieves high throughput by using incremental EC point addition instead of full scalar multiplication. Performance varies by blockchain due to different hashing algorithms.
Traditional brute-force requires full key derivation on every iteration: PBKDF2 (2048 rounds) → BIP32 derivation → scalar multiplication → address encoding. This is computationally expensive.
SplitKey replaces all of that with a single EC point addition per iteration — a dramatically cheaper operation. The result is orders of magnitude faster search, with actual speed depending on your hardware and the target blockchain.
The number of candidates to check grows exponentially with suffix length. Each additional character multiplies the search space by the character set size of the address encoding.
| Suffix Length | Difficulty | Hex (ETH, SUI) | Base58/64 (TON, BTC, SOL) |
|---|---|---|---|
| 1 char | Trivial | 16 | ~38-58 |
| 2 chars | Very fast | 256 | ~1.4K-3.4K |
| 3 chars | Fast | 4,096 | ~55K-195K |
| 4 chars | Moderate | 65,536 | ~2M-11M |
| 5 chars | Slow | 1,048,576 | ~79M-650M |
Tip: For best results, use 2-3 character suffixes — they are found within seconds to minutes. Longer suffixes grow exponentially in search time.