Stealth endpoints
Create payment payload
POST /api/v1/stealth/create derives stealth destination and announcement data.
Scan announcements
POST /api/v1/stealth/scan discovers payments addressed to your keys.
Workflow
Create stealth payload
Send recipient meta_address to /api/v1/stealth/create.
Publish announcement
Store the returned announcement with /api/v1/registry/announcements.
Scan with recipient keys
Use /api/v1/stealth/scan and recipient key material to recover discoveries.
POST /api/v1/stealth/create
Request schema
Hex-encoded recipient meta-address.
Optional channel identifier field in DTO. Current create handler does not use this field.
Response schema
Checksummed stealth EVM address.
Stealth Sui address derived from the same key material.
Hex-encoded ephemeral ciphertext.
1-byte view tag for fast filtering.
Announcement object ready for registry publication.
Announcement ID value from in-memory construction.
Hex ephemeral ciphertext.
Announcement view tag.
Unix timestamp set at creation.
Optional channel id.
Optional transaction hash.
Optional amount string.
Optional chain identifier.
POST /api/v1/stealth/scan
Request schema
Viewing secret key in hex.
Spending public key in hex.
Spending secret key in hex.
Optional list of specific view tags to pre-filter announcements.
Optional scan window start (Unix timestamp).
Optional scan window end (Unix timestamp).
Response schema
Array of discovered payments.
Scan execution metrics.
Number of announcements scanned.
Count of matching results returned by the scan path.
Number of discovered payments.
Total scan duration in milliseconds.
Scan throughput (announcements per second).
Example calls
- Create (cURL)
- Scan (cURL)
- JavaScript
curl -s -X POST https://backend.specterpq.com/api/v1/stealth/create \
-H "Content-Type: application/json" \
-d '{"meta_address":"<HEX_META_ADDRESS>"}' | jq .
curl -s -X POST https://backend.specterpq.com/api/v1/stealth/scan \
-H "Content-Type: application/json" \
-d '{
"viewing_sk":"<HEX_VIEWING_SK>",
"spending_pk":"<HEX_SPENDING_PK>",
"spending_sk":"<HEX_SPENDING_SK>",
"view_tags":[42]
}' | jq .
const createRes = await fetch("https://backend.specterpq.com/api/v1/stealth/create", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ meta_address })
});
const createData = await createRes.json();
console.log(createData.stealth_address, createData.view_tag);
Filter precedence in scan handler
Scan selection uses this order: view_tags filter first, else time range when both from_timestamp and to_timestamp are provided, else full registry scan.
Hex prefix handling
Scan key fields accept values with or without a 0x prefix (strip_hex_prefix in handler).
Secret material in discoveries
Discovery output includes stealth_sk and eth_private_key. Treat response payload as highly sensitive.
Treat all secret key fields and scan discovery private keys as production secrets.