For developers
Cryptix Wallet injects a provider at window.cryptix on pages where the user has the extension installed.
Your site never receives private keys — every connection, signature, and transaction goes through an
approval window the user must confirm.
Detect the wallet
function getProvider() {
return window.cryptix?.isCryptix ? window.cryptix : null;
}
async function waitForProvider(timeoutMs = 1500) {
if (getProvider()) return getProvider();
return new Promise((resolve) => {
const done = () => resolve(getProvider());
window.addEventListener("cryptix#initialized", done, { once: true });
setTimeout(done, timeoutMs);
});
}
The extension dispatches cryptix#initialized when the provider is ready.
Always check isCryptix === true — do not trust unknown objects on window.
Core API
Provider version: window.cryptix.version (currently 0.2.0 in extension).
| Method | Description | Returns |
|---|---|---|
connect() |
Ask user to connect this origin. Opens approval if needed. | Promise<string> — Cryptix address |
getAccount() |
Connected address for this site, or null. | Promise<string | null> |
signMessage(message) |
Sign a personal message (user approves). | Promise<{ signature, address }> |
disconnect() |
Remove connection for this origin. | Promise<true> |
Minimal connect example
const provider = await waitForProvider();
if (!provider) {
alert("Install Cryptix Wallet to continue");
return;
}
try {
const address = await provider.connect();
console.log("Connected:", address);
} catch (e) {
console.error("User rejected or error:", e.message);
}
Launchpad / liquidity API
Native bonding-curve ops (Cryptix L1). The wallet builds, signs, and broadcasts inside the approval window — your page only passes intent.
| Method | Params | Returns |
|---|---|---|
launchToken(params) |
{ name, symbol, maxSupply?, startLiquidityCpay?, feePct?, launchBuyCpay? } |
{ txid, assetId } |
buyToken(params) |
{ assetId, cpayAmount } (string or number) |
{ txid } |
sellToken(params) |
{ assetId, tokenAmount } |
{ txid } |
claimFees(params) |
{ assetId } |
{ txid } |
Buy example
const provider = await waitForProvider();
await provider.connect();
const { txid } = await provider.buyToken({
assetId: "243ecb57e217405a3fb7a226513db7c41a5464192fed873e8623b270ea6fa150",
cpayAmount: "10",
});
console.log("Buy tx:", txid);
User flow (what to expect)
- User visits your site with Cryptix Wallet installed.
- Your code calls
connect()→ approval popup (first time per origin). - Further actions (
signMessage,buyToken, …) each open approval with full details. - User rejects → promise rejects (typically
"user rejected"). - Connections are per-origin (scheme + host + port).
Security guidelines
- Never ask for a recovery phrase on your website. The wallet never exposes it to dApps.
- Verify
window.cryptix.isCryptixbefore calling methods. - Show users what they're signing — rely on the wallet approval UI; don't hide transaction intent.
- Handle rejections gracefully; don't retry connect in a loop.
- For HTTPS production sites only; localhost works for development.
Install links for your users
Point users to official wallet installs:
- Chrome Web Store (Chrome, Brave, Edge, Opera, Arc)
- Firefox manual install
- cryptixwallet.com
Support
Integration questions: support@cryptixwallet.com
Example dApp: cryptix.fun