Skip to content

Your First Transaction

Get a quantum-safe wallet, receive SOQ, and send a real transaction on Soqucoin mainnet.

Mainnet: real value

SOQ on mainnet is real. Write down your 24 recovery words before you receive anything, keep them offline, and send a small amount first when you pay someone new.


1. Get a wallet

Install SoquShield, the self-custodial Soqucoin wallet: Google Play on Android, and on iOS TestFlight while the App Store listing completes review. Keys are generated and stored on your device, and a new wallet is created on Mainnet. See soqu.org/soqushield.

You can also generate a wallet in the browser at soqu.org/wallet. The derivation is the same as the app's, so the same 24 words restore the same address in SoquShield.

Your address starts with sq1p:

address = bech32m("sq", 1, SHA256(pubkey₁₃₁₂))

2. Receive SOQ

There is no mainnet faucet. You get SOQ in one of two ways:

  • Mine it. Point Scrypt hardware at SOQUPOOL and set your sq1p address as the payout address. See the Pool Mining guide.
  • Be paid. Share your address, as text or as the QR code SoquShield shows under Receive.

3. Send a transaction

In SoquShield, open Send, paste or scan the recipient's address, enter the amount, review, and confirm. The app builds the transaction and signs it with your ML-DSA-44 key on the device; the key never leaves it.

Each transaction in Activity opens in the public block explorer at explorer.soqu.org.


For developers: the same transaction in code

The TypeScript SDK does the same work client-side:

  1. Keys and address: onchain.mlDsaKeygen() creates an ML-DSA-44 keypair locally; regenerate it if the public key's first byte is 0xFF, which the node rejects (details). onchain.deriveAddress(publicKey, "sq") gives the mainnet address.
  2. Unspent outputs: list the address's UTXOs from your own infrastructure. The Go SDK's Exchange Integration guide describes an address indexer; gettxout confirms each output against your node's UTXO set.
  3. Build + sign: onchain.buildSignedSend({ hrp: "sq", ... }) assembles the transaction and signs it with ML-DSA-44 (2,420-byte signature).
  4. Broadcast through your own node:
soqucoin-cli sendrawtransaction <rawTxHex>

The node validates the witness-v1 format:

witness = [ sig₂₄₂₀ ‖ 0x01,        // SIGHASH_ALL
            0x00 ‖ pubkey₁₃₁₂ ]     // FIPS-204 form

sighash = BIP143, empty-context ML-DSA

Blocks are targeted 60 seconds apart, so a transaction usually confirms within a few minutes.


What just happened

You signed a real transaction with a NIST FIPS 204 lattice-based signature, the same standard the U.S. federal government mandates for post-quantum digital signatures. The private key never left your device or your browser.

Next steps