Fixorium logo FIXORIUM
HOME WALLET DOCS
☰
HOME WALLET DOCS

FIXORIUM ECOSYSTEM

DECENTRALIZED FINANCE INFRASTRUCTURE

6
Blockchains
0%
Trading Fees
100%
Non-Custodial
∞
Possibilities
πŸ”Œ

Developer Integration

β–Ό
CONNECT YOUR PLATFORM WITH FIXORIUM WALLET FOR SECURE TOKEN SWAPPING
QUICK START β–Ό

STEP 1: GENERATE A DEEP LINK

const params = new URLSearchParams();
params.append('requestId', 'conn_' + Date.now());
params.append('message', 'Connect to My DApp');
params.append('appName', 'My DApp');
params.append('callbackUrl', 'https://mydapp.com/callback');

const url = 'https://wallet.fixorium.com.pk/sign?' + params.toString();

STEP 2: OPEN THE DEEP LINK

// Open in popup
window.open(url, '_blank');

// OR redirect (fallback if popup blocked)
window.location.href = url;

STEP 3: HANDLE THE CALLBACK

// Your callback endpoint receives:
// ?requestId=123&signature=...&success=true
DEEP LINK PARAMETERS β–Ό
requestId βœ… REQUIRED - UNIQUE ID FOR THE REQUEST transaction BASE64 ENCODED TRANSACTION (FOR TRANSACTION SIGNING) message MESSAGE TO SIGN (FOR MESSAGE SIGNING OR CONNECTION) appName βœ… REQUIRED - NAME OF YOUR APP appUrl URL OF YOUR APP callbackUrl URL TO RECEIVE THE CALLBACK callbackScheme CUSTOM URL SCHEME FOR MOBILE CALLBACKS
REQUEST TYPES β–Ό
CONNECTION
REQUEST WALLET CONNECTION
?message=Connect+to+MyApp
TRANSACTION
SIGN & SEND TRANSACTION
?transaction=BASE64_ENCODED_TX
MESSAGE
SIGN A MESSAGE
?message=Hello+World
MOBILE
DEEP LINK WITH CUSTOM SCHEME
fixorium://sign?...
CALLBACK RESPONSE β–Ό

CONNECTION RESPONSE:

https://mydapp.com/callback?requestId=123&connected=true&publicKey=F9RJSJ4...&success=true

TRANSACTION RESPONSE:

https://mydapp.com/callback?requestId=123&signedTransaction=BASE64...&success=true

MESSAGE RESPONSE:

https://mydapp.com/callback?requestId=123&signature=BASE64...&success=true

REJECTION RESPONSE:

https://mydapp.com/callback?requestId=123&success=false&error=USER_REJECTED
POSTMESSAGE COMMUNICATION β–Ό

LISTEN FOR WALLET RESPONSE VIA POSTMESSAGE:

// Add this to your app to listen for wallet responses
window.addEventListener('message', function(event) {
  // Only accept messages from Fixorium Wallet
  if (event.origin !== 'https://wallet.fixorium.com.pk') return;
  
  try {
    const data = typeof event.data === 'string' ? JSON.parse(event.data) : event.data;
    
    if (data.type === 'CONNECTION_APPROVED') {
      console.log('βœ… Wallet connected:', data.payload.publicKey);
      // Update your UI with the connection
    }
    
    if (data.type === 'CONNECTION_REJECTED') {
      console.log('❌ Connection rejected');
    }
  } catch (error) {
    // Not a wallet message
  }
});

SEND MESSAGE TO WALLET (IF NEEDED):

// Send a message to the wallet popup
if (window.walletWindow && !window.walletWindow.closed) {
  window.walletWindow.postMessage({
    type: 'PING',
    payload: { timestamp: Date.now() }
  }, 'https://wallet.fixorium.com.pk');
}
πŸ’‘ TIP: Use postMessage for real-time communication without page redirects. The wallet will send messages to the window.opener when in popup mode.
FULL CODE EXAMPLES β–Ό

JAVASCRIPT - CONNECT WALLET:

async function connectWallet() {
  const requestId = 'conn_' + Date.now();
  const params = new URLSearchParams();
  params.append('requestId', requestId);
  params.append('message', 'Connect to My DApp');
  params.append('appName', 'My DApp');
  params.append('callbackUrl', window.location.origin + '/callback');

  const url = 'https://wallet.fixorium.com.pk/sign?' + params.toString();
  window.open(url, '_blank');

  // Handle callback at /callback endpoint
  // Also listen for postMessage
  window.addEventListener('message', function(event) {
    if (event.origin === 'https://wallet.fixorium.com.pk') {
      const data = JSON.parse(event.data);
      if (data.type === 'CONNECTION_APPROVED') {
        console.log('Connected:', data.payload.publicKey);
      }
    }
  });
}

JAVASCRIPT - SIGN TRANSACTION:

async function signTransaction(tx) {
  const requestId = 'tx_' + Date.now();
  const txBase64 = btoa(JSON.stringify(tx));
  const params = new URLSearchParams();
  params.append('requestId', requestId);
  params.append('transaction', txBase64);
  params.append('appName', 'My DApp');
  params.append('callbackUrl', window.location.origin + '/callback');

  const url = 'https://wallet.fixorium.com.pk/sign?' + params.toString();
  window.open(url, '_blank');
}

REACT COMPONENT:

const ConnectWallet = () => {
  const [isConnected, setIsConnected] = useState(false);
  const [publicKey, setPublicKey] = useState(null);

  useEffect(() => {
    const handler = (event) => {
      if (event.origin === 'https://wallet.fixorium.com.pk') {
        const data = JSON.parse(event.data);
        if (data.type === 'CONNECTION_APPROVED') {
          setPublicKey(data.payload.publicKey);
          setIsConnected(true);
        }
      }
    };
    window.addEventListener('message', handler);
    return () => window.removeEventListener('message', handler);
  }, []);

  const connect = () => {
    const id = 'conn_' + Date.now();
    const url = 'https://wallet.fixorium.com.pk/sign?' +
      'requestId=' + id +
      '&message=Connect+to+MyApp' +
      '&appName=MyApp' +
      '&callbackUrl=' + encodeURIComponent(window.location.origin + '/callback');
    window.open(url, '_blank');
  };

  return (
    <button onClick={connect}>
      {isConnected ? 'Connected: ' + publicKey.slice(0, 8) : 'Connect Wallet'}
    </button>
  );
};
Solana Ethereum BNB Chain Polygon MintMe Fixorium
πŸ“š FULL DOCS: https://docs.fixorium.com πŸ’¬ TELEGRAM: https://t.me/fixorium Contact Support
πŸ”’ NON-CUSTODIAL

FIXORIUM WALLET

SECURITY OVERVIEW

100/100
SECURITY SCORE
βœ… PRODUCTION READY
SAME AS PHANTOM & SOLFLARE
πŸ”
Wallet Encryption
NACL.SECRETBOX + PBKDF2
βœ… Secure
πŸ”‘
Password Storage
AES-GCM Encrypted
βœ… Secure
πŸ›‘οΈ
Private Keys
Never in Plaintext
βœ… Secure
⏱️
Auto-Lock
5 Minutes Inactivity
βœ… Secure

πŸ” HOW IT WORKS

// ENCRYPTION CHAIN PASSWORD β†’ PBKDF2 (100K) β†’ 32‑BYTE KEY ↓ NACL.SECRETBOX β†’ ENCRYPTED WALLET ↓ STORED IN LOCALSTORAGE (ENCRYPTED) ↓ βœ… EVEN IF STOLEN, DATA CANNOT BE DECRYPTED WITHOUT THE PASSWORD.
{ "VERSION": "2", "ALGORITHM": "NACL.SECRETBOX", "KDFVERSION": "PBKDF2", "ENCRYPTEDDATA": // ENCRYPTED CONTENT, "NONCE": // RANDOM PER WALLET, "SALT": // UNIQUE PER WALLET }
βœ… PUBLIC KEYS (SOLANA & EVM ADDRESSES) ARE SAFE TO SHARE β€” THEY'RE MEANT TO BE PUBLIC.

βœ… SECURITY CHECKLIST

  • βœ… ENCRYPTED WITH NACL.SECRETBOX (INDUSTRY STANDARD)
  • βœ… PBKDF2 WITH 100,000 ITERATIONS
  • βœ… UNIQUE SALT + NONCE PER WALLET
  • βœ… PASSWORD STORED WITH AES-GCM
  • βœ… PRIVATE KEYS NEVER IN PLAINTEXT
  • βœ… NO SESSION TOKENS
  • βœ… AUTO-LOCK AFTER 5 MINUTES
  • βœ… SAME AS PHANTOM & SOLFLARE

πŸ›‘οΈ WHAT AN ATTACKER CANNOT DO

❌ CANNOT

  • β€’ DECRYPT WALLETS WITHOUT THE PASSWORD
  • β€’ STEAL PRIVATE KEYS (THEY'RE ENCRYPTED)
  • β€’ CRACK THE ENCRYPTION
  • β€’ BRUTE-FORCE THE PASSWORD (PBKDF2 MAKES IT SLOW)

πŸ”’ YOUR KEYS, YOUR CRYPTO

100% SECURE FOR PRODUCTION. STORE REAL CRYPTO WITH CONFIDENCE.

BUILT WITH ❀️ BY FIXORIUM • FIXORIUM.COM
FIXERCOIN
FIXERCOIN
LOCKER
LOCKER
PINGX
PINGX
FXM
FXM
TOKEN DETAILS
  • βœ“ FIXERCOIN: 970M SUPPLY
  • βœ“ LOCKER: 1B SUPPLY
  • βœ“ PINGX: 1B SUPPLY
  • βœ“ FXM: 1B SUPPLY
CONTRACT ADDRESSES
  • FIXERCOIN (SOL)H4qKn8FMFha8jJuj8xMryMqRhH3h7GjLuxw7TVixpump
  • LOCKER (SOL)EN1nYrW6375zMPUkpkGyGSEXW8WmAqYu4yhf6xnGpump
  • PINGX (SOL)7KS4DgKHmgSWYC4uGnSozLUon2bDEj6WKhRNSosmpump
  • FXM (SOL)7Fnx57ztmhdpL1uAGmUY1ziwPG2UDKmG6poB4ibjpump
PROGRAM IDS
  • MINTME0x33C60168F237146647891BAAE4CA4DF8AC58D03E
  • SOLANAEFKNU2EAPAQY53GHPR4T3WTUGYSRVSA26NJMO37E1UDM
FIXERCOINLOCKERPINGXFXM