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
FIXORIUM