Official Anantla BRDZ SDK for developers
npm install anantla_sdk
Modular SDK to access BRDZ API โ Wallet, Cardano, XRPL, MCP, Sumsub, Visa, Xendit, Indodax, and more.
Official Site โข Contact Us
bash
Install SDK from NPM
npm install anantla_sdk@latest
`
Make sure you install the latest version of our SDK.
$3
Simple way:
`bash
Clean cache
npm cache clean --force
Install update
npm install anantla_sdk@latest
`
Clean Installation:
`bash
rm -rf node_modules package-lock.json
npm cache clean --force
npm config delete prefix
npm config delete cache
npm config set registry https://registry.npmjs.org/
npm install anantla_sdk@latest
`
Now, you are ready to make history with Anantla SDK!
---
๐ SDK Structure
`bash
anantla-sdk/
โโโ src/
โ โโโ modules/ # All module files
โ โ โโโ auth.js # Authentication
โ โ โโโ twofa.js # Two-Factor Authentication
โ โ โโโ mcp.js # AI Commerce
โ โ โโโ marketplace.js # AI Conversational Commerce (NEW v1.1.5)
โ โ โโโ ekyc.js # Sumsub eKYC
โ โ โโโ neon.js # Neon blockchain
โ โ โโโ cardano.js # Cardano integration
โ โ โโโ xrpl.js # XRPL integration
โ โ โโโ visa.js # Visa card integration
โ โ โโโ wallet.js # Wallet management
โ โ โโโ bridge.js # Cross-chain bridge
โ โ โโโ fx.js # Foreign exchange
โ โ โโโ plaid.js # Banking integration
โ โ โโโ cryptoWallet.js # ABSK - AI Blockchain Starter Kit
โ โ โโโ privy.js # Privy authentication
โ โ โโโ twitter.js # Twitter bot integration
โ โ โโโ xendit.js # Xendit payment gateway (NEW v1.1.4)
โ โ โโโ indodax.js # Indodax crypto exchange (NEW v1.1.4)
โ โ โโโ ... # More modules
โ โโโ index.js # Main entry with exports
โโโ package.json
โโโ README.md
โโโ test-sdk.js # SDK Test Suite
โโโ .npmignore
`
---
๐งช SDK Testing
Before using the SDK in production, run the comprehensive test suite:
`bash
List SDK
npm list anantla_sdk
Make simple test
cat > test-sdk.js << 'EOF'
const sdk = require('anantla_sdk');
console.log('SDK modules:', Object.keys(sdk));
console.log('Auth module:', !!sdk.auth);
console.log('TwoFA module:', !!sdk.twofa);
console.log('Xendit module:', !!sdk.xendit);
console.log('Indodax module:', !!sdk.indodax);
console.log('CryptoWallet available:', !!sdk.cryptoWallet);
EOF
Run SDK test suite
node test-sdk.js
`
$3
The test suite validates:
- โ
All 28+ modules can be imported successfully
- โ
Core infrastructure (config, utils, auth, twofa) functionality
- โ
HTTP client methods (get, post, put, del)
- โ
Sample module functions availability
- โ
ES6 export compatibility
- โ
Configuration system
$3
`
SDK modules: [
'config', 'admin',
'auth', 'twofa',
'bridge', 'cardano',
'client', 'ekyc',
'fx', 'mcp',
'marketplace',
'ntcp', 'plaid',
'stableX', 'testnet',
'transactions', 'utils',
'visa', 'wallet',
'xrpl', 'apikey',
'crosschain', 'neon',
'cryptoWallet', 'onchain',
'twitter', 'privy',
'xendit', 'indodax',
'default'
]
`
$3
`bash
rm test-sdk.js
`
---
โ๏ธ Configuration
$3
> New to API Keys? See our API Key Setup Guide for detailed instructions.
`js
import brdzSDK from 'anantla_sdk';
// or const brdzSDK = require('anantla_sdk');
const config = await brdzSDK.config;
config.setBaseUrl('https://dev.brdz.link/api');
config.setApiKey('');
config.setToken(''); // Optional, for authenticated endpoints
`
$3
Create a .env file:
`bash
Backend (.env)
BRDZ_API_BASE=https://dev.brdz.link/api
BRDZ_API_KEY=your_api_key_here
BRDZ_JWT_TOKEN=your_jwt_token_here
Frontend (.env.local)
REACT_APP_API_BASE=https://dev.brdz.link/api
REACT_APP_API_KEY=your_public_api_key_here
NEXT_PUBLIC_BRDZ_API_KEY=your_public_api_key_here
`
Then configure SDK:
`js
require('dotenv').config();
const config = await brdzSDK.config;
config.setBaseUrl(process.env.BRDZ_API_BASE);
config.setApiKey(process.env.BRDZ_API_KEY);
config.setToken(process.env.BRDZ_JWT_TOKEN);
`
---
๐ Authentication
$3
All authenticated endpoints require a JWT token:
- Endpoint: POST /api/auth/login
- Header: Authorization: Bearer
$3
`js
const auth = await brdzSDK.auth;
// Traditional login with username/password
const loginResult = await auth.loginUser('user@example.com', 'password123');
console.log('Login successful:', loginResult);
// Set token for subsequent requests
const config = await brdzSDK.config;
config.setToken(loginResult.token);
// Register new user
const registerResult = await auth.registerUser({
email: 'newuser@example.com',
username: 'newuser',
password: 'securepassword123'
});
`
$3
`js
const twofa = await brdzSDK.twofa;
// Step 1: Setup 2FA - Generate QR code
const setupResult = await twofa.setup();
console.log('QR Code URL:', setupResult.qr_code_url);
// Step 2: Enable 2FA after scanning QR code
const enableResult = await twofa.enable('123456'); // 6-digit code from app
console.log('2FA enabled:', enableResult);
// Step 3: Login with 2FA
const loginResult = await auth.loginUser('user@example.com', 'password123');
if (loginResult.requires_2fa) {
// Complete login with 2FA token
const completeResult = await auth.completeLoginWith2FA(
loginResult.user_id,
'123456' // 6-digit code from authenticator app
);
console.log('Login completed with 2FA:', completeResult.token);
}
// Other 2FA operations
const status = await twofa.getStatus();
const backupCodes = await twofa.getBackupCodes('password123');
const disableResult = await twofa.disable('123456', 'password123');
`
---
๐ณ Xendit Module (Payment Gateway)
The Xendit module provides comprehensive payment gateway operations for Indonesia market.
$3
`js
const xendit = await brdzSDK.xendit;
// 1. Create Fixed Virtual Account for wallet top-up
const vaResult = await xendit.requestFixedVA({
wallet_id: 123,
bank_code: 'BNI',
amount: 100000,
is_single_use: false
});
console.log('VA Number:', vaResult.va_number);
// 2. Process wallet withdrawal to bank
const withdrawResult = await xendit.processWalletWithdraw({
wallet_id: 123,
amount: 50000,
currency: 'IDR',
bank_code: 'BCA',
account_number: '1234567890',
account_holder_name: 'John Doe',
description: 'Withdrawal to bank'
});
// 3. Get withdrawal status
const status = await xendit.getWithdrawStatus(withdrawResult.reference_id);
console.log('Withdrawal status:', status);
// 4. Check Xendit balance
const balance = await xendit.getBalance({ account_type: 'CASH' });
console.log('Available balance:', balance);
`
$3
Withdrawal Operations (2 methods)
- processWalletWithdraw - Process wallet withdrawal to bank
- getWithdrawStatus - Get withdrawal status by reference ID
Fixed Virtual Account Operations (2 methods)
- requestFixedVA - Request Fixed VA for wallet top-up
- getFixedVAList - Get list of Fixed VAs for a wallet
Balance Operations (2 methods)
- getBalance - Get Xendit account balance for specific account type
- getAllBalances - Get all Xendit account balances (CASH, HOLDING, TAX)
Transaction Operations (3 methods)
- listTransactions - List transactions with pagination and filtering
- getTransaction - Get specific transaction details
- getTransactionCount - Get transaction count with filters
Reconciliation Operations (3 methods)
- reconcileWalletBalance - Reconcile wallet balance with Xendit
- resolveReconciliation - Manually resolve reconciliation discrepancy
- getReconciliationDetails - Get reconciliation details
Webhook Operations (3 methods)
- processWebhook - Process incoming Xendit webhook (server-to-server)
- processDLQ - Process dead letter queue manually
- getWebhookStats - Get webhook processing statistics
Reports Operations (4 methods)
- generateBalanceReport - Generate balance report for date range
- generateTransactionReport - Generate transaction report with filters
Administrative Operations (3 methods)
- healthCheck - Health check for Xendit integration
- validateConfiguration - Validate Xendit configuration
- getDashboardData - Get dashboard data for monitoring
---
๐ฆ
Indodax Module (Crypto Exchange)
The Indodax module enables cryptocurrency trading and IDR-to-USDC conversion for Indonesian users.
$3
`js
const indodax = await brdzSDK.indodax;
// 1. Save crypto wallet address
const walletResult = await indodax.saveCryptoWallet({
wallet_address: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb',
network: 'polygon',
is_primary: true
});
// 2. Start IDR to USDC conversion
const conversionResult = await indodax.startConversion({
wallet_id: 123,
amount_idr: 1000000
});
console.log('Conversion job created:', conversionResult.job_id);
// 3. Check conversion status
const status = await indodax.getConversionStatus(conversionResult.job_id);
console.log('Status:', status.status); // PENDING, DISBURSING, TRADING, WITHDRAWING, COMPLETED
// 4. Get current USDC/IDR price
const price = await indodax.getCurrentPrice('usdc_idr');
console.log('USDC Price:', price.last, 'IDR');
// 5. Check Indodax balance
const balance = await indodax.getIndodaxBalance();
console.log('IDR Balance:', balance.idr);
console.log('USDC Balance:', balance.usdc);
`
$3
`
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ IDR โ USDC Conversion Flow โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Step 1: DISBURSEMENT (Xendit)
โโ> Transfer IDR from wallet to Indodax account via Xendit
Status: PENDING โ DISBURSING
Step 2: BALANCE CONFIRMATION (Indodax Polling)
โโ> Wait for IDR to appear in Indodax account
Status: WAITING_INDODAX
Polling: Every 1 hour (max 24 hours)
Step 3: TRADE EXECUTION (Indodax)
โโ> Buy USDC with IDR at current market price
Status: TRADING
Polling: Every 10s (max 5 minutes)
Step 4: WITHDRAWAL (Indodax)
โโ> Withdraw USDC to user's crypto wallet
Status: WITHDRAWING
Step 5: COMPLETED
โโ> USDC received in user's wallet
Status: COMPLETED
`
$3
Crypto Wallet Operations (3 methods)
- saveCryptoWallet - Save or update crypto wallet address for user
- getCryptoWallet - Get user's crypto wallet info
- deleteCryptoWallet - Delete crypto wallet address
Conversion Operations (4 methods)
- startConversion - Start IDR to USDC conversion process
- getConversionStatus - Get conversion job status
- getConversionHistory - Get user's conversion history
- retryConversion - Retry failed conversion job
Price & Balance Operations (3 methods)
- getCurrentPrice - Get current USDC/IDR price from Indodax
- getIndodaxBalance - Get Indodax account balance (IDR & USDC)
- getTradeHistory - Get Indodax trade history
---
๐๏ธ Marketplace Module (Conversational Commerce)
The Marketplace module enables AI-powered shopping with natural language processing, supporting Etsy and Tokopedia products with USDC payments.
$3
`js
const marketplace = await brdzSDK.marketplace;
// 1. Chat with AI shopping assistant
const chatResult = await marketplace.sendMessage({
message: "I'm looking for handmade ceramic mugs",
conversation_history: []
});
console.log('AI Reply:', chatResult.reply);
console.log('Intent:', chatResult.intent); // SEARCH, BUY, INFO, HELP
// 2. Search products across marketplaces
const searchResult = await marketplace.searchProducts({
query: "handmade ceramic mug",
sources: ['etsy', 'tokopedia'],
limit: 10
});
console.log('Found products:', searchResult.products);
// 3. Create order (requires authentication)
const orderResult = await marketplace.createOrder({
product: {
productId: 'etsy-12345',
title: 'Handmade Ceramic Mug',
pricing: {
price: 25.00,
currency: 'USD',
total: 28.50
},
vendor: {
name: 'Etsy - CeramicShop',
marketplace: 'etsy'
},
// ... other product details
},
recipient: {
name: "John Doe",
phone: "+628123456789",
address: "Jl. Sudirman No. 123, Jakarta",
notes: "Please call before delivery"
},
wallet_address: "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
chain_id: "sepolia"
});
console.log('Order created:', orderResult.order.order_id);
console.log('Pay with USDC:', orderResult.payment_details.usdc_amount);
// 4. Check order status
const order = await marketplace.getOrder(orderResult.order.order_id);
console.log('Payment status:', order.order.payment_status);
// 5. Get user's order history
const orders = await marketplace.getUserOrders({
limit: 10,
offset: 0,
status: 'PAID'
});
console.log('Total orders:', orders.pagination.total);
`
$3
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Conversational Commerce Flow โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Step 1: AI CHAT
โโ> User describes what they want in natural language
AI detects intent: SEARCH, BUY, INFO, HELP
Step 2: PRODUCT SEARCH
โโ> AI generates optimized search queries
Scrapes Etsy & Tokopedia using Puppeteer
Normalizes products into unified schema
Step 3: ORDER CREATION
โโ> User selects product
System calculates USDC amount (with FX conversion for IDR)
Order saved to database with PENDING status
Step 4: BLOCKCHAIN PAYMENT
โโ> User pays with USDC via smart contract
Relayer listens to PaymentCompleted event
Order status updated to PAID
Step 5: FULFILLMENT (Manual for MVP)
โโ> Merchant notified
Product shipped to recipient
Order status updated to COMPLETED
$3
Chat Operations (No Auth Required)
- sendMessage - Natural language chat with AI shopping assistant
- Intent detection (SEARCH, BUY, INFO, HELP)
- Conversation history support
- Powered by Groq AI (Llama 3.1 70B)
Search Operations (No Auth Required)
- searchProducts - Multi-marketplace product search
- Sources: Etsy (USD), Tokopedia (IDR)
- AI-generated search query optimization
- Unified product schema normalization
- Price sorting and filtering
Order Operations (Auth Required)
- createOrder - Create marketplace order with USDC payment
- Automatic FX conversion (IDR โ USDC)
- Smart contract payment integration
- Recipient information collection
- getOrder - Get order details by ID**
- Payment status tracking
- Blockchain transaction hash
- getUserOrders - Get user's order history
- Pagination support
- Status filtering (PENDING, PAID, COMPLETED, FAILED, CANCELLED)
$3
Etsy (International)
- Currency: USD
- Payment: Direct USDC (1:1)
- Shipping: International
Tokopedia (Indonesia)
- Currency: IDR
- Payment: Auto-converted to USDC via FX service
- Shipping: Domestic Indonesia
$3
`javascript
// Example: Paying for order
const Web3 = require('web3');
const web3 = new Web3(window.ethereum);
// Get order payment details
const order = await marketplace.getOrder(orderId);
const { usdc_amount, contract_address, wallet_address } = order.payment_details;
// Smart contract ABI
const BRDZ_PAYMENT_ABI = [
{
"inputs": [
{"type": "address", "name": "brdzWallet"},
{"type": "uint256", "name": "amount"},
{"type": "string", "name": "orderId"}
],
"name": "completePayment",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
];
// Execute payment
const contract = new web3.eth.Contract(BRDZ_PAYMENT_ABI, contract_address);
const amountInWei = web3.utils.toWei(usdc_amount.toString(), 'mwei'); // USDC has 6 decimals
await contract.methods
.completePayment(wallet_address, amountInWei, order.order_id)
.send({ from: userAddress });
// Blockchain relayer will automatically update order status to PAID
`
$3
`javascript
try {
const result = await marketplace.createOrder(orderData);
console.log('Order created:', result.order.order_id);
} catch (error) {
if (error.response?.status === 401) {
console.error('Authentication required');
} else if (error.response?.status === 400) {
console.error('Missing required fields:', error.response.data.error);
} else {
console.error('Order creation failed:', error.message);
}
}
`
---
๐ค ABSK (AI Blockchain Starter Kit) Module
The cryptoWallet module provides ABSK functionality with dual architecture.
$3
`js
const absk = await brdzSDK.cryptoWallet;
// Create wallet
const wallet = await absk.createWallet({
wallet_name: "My Crypto Wallet",
user_id: 123
});
// Get user wallets
const wallets = await absk.getUserWallets(123);
// Add chain address
const address = await absk.addChainAddress(wallet.bw_id, {
chain_id: "sepolia"
});
// Check balance
const balance = await absk.balance.getTotal(wallet.bw_id);
`
$3
`js
// Natural language processing
const result = await absk.processAIIntent({
user_input: "Create a new wallet called Trading Wallet",
user_id: 123
});
// AI helper methods
const wallet = await absk.ai.createWallet(
"I want a new wallet for DeFi trading",
123
);
const balances = await absk.ai.checkBalance(
"Show me my USDC balance on Sepolia",
123
);
`
$3
`js
// Private key operations
const backup = await absk.keys.createBackup({
wallet_id: 1,
user_id: 123
});
// Token management
await absk.tokens.import({
chain_id: "sepolia",
asset_issuer: "0x..."
});
// Balance checking
const usdcBalance = await absk.balance.getUSDC(1, "sepolia");
`
---
๐๏ธ MCP (AI Commerce) Module
The MCP module enables AI-powered shopping with cryptocurrency payments.
$3
`js
const mcp = await brdzSDK.mcp;
// 1. Detect purchase intent
const intent = await mcp.step1_detectIntent({
prompt: "I want to buy headphones from https://tokopedia.com/product-url"
});
// 2. Parse product details
const product = await mcp.step2_parseProduct({
url: intent.detected_url
});
// 3. Confirm product and get pricing
const confirmation = await mcp.step3a_productConfirmation({
product: product.product
});
// 4. Create order with recipient (requires authentication)
const order = await mcp.createOrder({
product: confirmation.product,
pricing: confirmation.pricing,
recipient: {
name: "John Doe",
phone: "+628123456789",
address: "Jl. Sudirman No. 123, Jakarta Selatan 12190, Indonesia",
notes: "Please call before delivery"
}
});
// 5. Execute payment (requires sufficient USDC balance)
const result = await mcp.executeOrder({
order_id: order.order_id,
confirmation: "confirmed"
});
console.log('Order completed:', result);
`
---
๐ง Available Modules & Methods
$3
- auth (8 methods) - User authentication, registration, mobile 2FA & complete login
- twofa (6 methods) - Two-Factor Authentication setup, enable, disable, verify
- config (6 methods) - SDK configuration management
- utils (6 methods) - HTTP client & debugging utilities
$3
- cryptoWallet (14 methods) - ABSK AI Blockchain Starter Kit
- crosschain (9 methods) - Cross-chain bridge operations
- neon (2 methods) - Neon blockchain integration
- bridge (5 methods) - Cross-chain wallet & VA bridge
- onchain (20 methods) - Onchain transaction execution & logging
$3
- xendit (22 methods) - Payment gateway operations (NEW v1.1.4)
- indodax (10 methods) - Crypto exchange & IDR conversion (NEW v1.1.4)
- mcp (10 methods) - AI-powered commerce & shopping
- marketplace (5 methods) - AI conversational commerce (NEW v1.1.5)
- wallet (8 methods) - Traditional wallet management
- transactions (11 methods) - Transaction history & management
- fx (3 methods) - Foreign exchange & currency conversion
- wallet (8 methods) - Traditional wallet management
$3
- cardano (9 methods) - Cardano blockchain operations
- xrpl (7 methods) - XRPL integration & trustlines
- visa (6 methods) - Visa card virtual integration
- plaid (5 methods) - Banking & ACH integration
- privy (8 methods) - Privy authentication integration
- twitter (16 methods) - Twitter bot verification & rewards
$3
- ekyc (7 methods) - Sumsub eKYC/eKYB verification
- admin (6 methods) - Administrative functions
- client (6 methods) - Client management
- stableX (4 methods) - Cross-chain USDC operations
- testnet (4 methods) - Testnet development tools
- ntcp (6 methods) - Recipient & batch transfer management
- apikey (4 methods) - API key management
---
๐ Frontend Integration
$3
For v1.1.0+, you only need TypeScript declarations. No custom hooks required - call SDK methods directly.
Create TypeScript declarations in your frontend project:
`typescript
// types/anantla-sdk.d.ts
declare module 'anantla_sdk' {
export const config: {
setBaseUrl: (url: string) => void;
setApiKey: (key: string) => void;
setToken: (token: string) => void;
getBaseUrl: () => string;
getApiKey: () => string;
getToken: () => string;
};
export const auth: {
loginUser: (email: string, password: string) => Promise;
registerUser: (data: any) => Promise;
completeLoginWith2FA: (userId: string, code: string) => Promise;
};
export const twofa: {
setup: () => Promise;
enable: (code: string) => Promise;
disable: (code: string, password: string) => Promise;
getStatus: () => Promise;
};
export const cryptoWallet: {
createWallet: (data: any) => Promise;
getUserWallets: (userId: number) => Promise;
processAIIntent: (data: any) => Promise;
};
export const xendit: {
requestFixedVA: (data: any) => Promise;
processWalletWithdraw: (data: any) => Promise;
getBalance: (params?: any) => Promise;
};
export const indodax: {
startConversion: (data: any) => Promise;
getConversionStatus: (jobId: string) => Promise;
getCurrentPrice: (pair: string) => Promise;
};
export const marketplace: {
sendMessage: (data: {
message: string;
conversation_history?: Array<{ role: string; content: string }>
}) => Promise;
searchProducts: (data: {
query: string;
sources?: ('etsy' | 'tokopedia')[];
limit?: number
}) => Promise;
createOrder: (data: any) => Promise;
getOrder: (order_id: string) => Promise;
getUserOrders: (params?: any) => Promise;
};
// other modules...
}
`
$3
1. Ensure your TypeScript declarations match the SDK module structure
2. Use proper type assertions when needed
3. Always check method availability before calling
4. No custom hooks needed - call SDK methods directly in v1.1.0+
$3
`tsx
import React, { useEffect, useState } from 'react';
import brdzSDK from 'anantla_sdk';
const WalletDashboard = () => {
const [sdkReady, setSdkReady] = useState(false);
useEffect(() => {
const initSDK = async () => {
try {
const config = await brdzSDK.config;
config.setBaseUrl(process.env.REACT_APP_API_BASE);
config.setApiKey(process.env.REACT_APP_API_KEY);
const token = localStorage.getItem('auth_token');
if (token) config.setToken(token);
setSdkReady(true);
} catch (error) {
console.error('SDK initialization failed:', error);
}
};
initSDK();
}, []);
const createWallet = async () => {
try {
const absk = await brdzSDK.cryptoWallet;
const wallet = await absk.createWallet({
wallet_name: "My New Wallet",
user_id: 123
});
console.log('Wallet created:', wallet);
} catch (error) {
console.error('Wallet creation failed:', error);
}
};
const startConversion = async () => {
try {
const indodax = await brdzSDK.indodax;
const result = await indodax.startConversion({
wallet_id: 123,
amount_idr: 1000000
});
console.log('Conversion started:', result);
} catch (error) {
console.error('Conversion failed:', error);
}
};
if (!sdkReady) return Loading SDK...;
return (
BRDZ Wallet Dashboard
);
};
export default WalletDashboard;
`
---
๐ง Development & Testing
$3
`bash
Set up environment
cp .env.example .env
Edit .env with your API keys
Build for production
npm run build
`
$3
Enable debug logging:
`js
process.env.DEBUG = 'brdz-sdk:*';
const brdzSDK = require('anantla_sdk');
// Debug logs will show all API calls and responses
`
---
๐ก๏ธ Security Best Practices
1. Never expose API keys in client-side code repositories
2. Use environment variables for sensitive configuration
3. Validate all inputs before sending to API
4. Handle errors gracefully with proper user feedback
5. Keep JWT tokens secure and refresh them regularly
6. Use HTTPS only for all API communications
7. Enable 2FA for enhanced account security
8. Store 2FA backup codes securely offline
---
๐ Breaking Changes & Deprecations
$3
Wallet Module Deprecation:
- โ mockActivateWallet - DEPRECATED and removed
- Wallet activation is now automatic based on:
- MOCK_MODE environment variable
- Xendit customer linking (for Indonesia users)
- Manual mock activation is no longer needed
Migration Guide:
`js
// โ OLD (Deprecated)
await wallet.mockActivateWallet({
wallet_id: 123,
country_code: 'ID'
});
// โ
NEW (Automatic)
// Wallet is automatically activated on creation when:
// 1. MOCK_MODE=true in environment, OR
// 2. Xendit customer is linked (for Indonesia)
const wallet = await wallet.createWallet({
user_id: 123,
currency: 'IDR',
country_code: 'ID'
});
// Wallet status will be 'ACTIVE' automatically
`
---
๐ Support
- Email: support@anantla.org
- Contact: BRDZ Contact Form
---
๐ License
Internal use only โ for BRDZ & AOL Core integration partners.
Copyright ยฉ 2024-2025 Anantla Technologies. All rights reserved.
---
๐ Version History
$3
Version 1.1.23
- v1.1.23 :
- Update with Xtoken that can swap to XSGD
$3
Version 1.1.22
- v1.1.22 :
- Change Base URL backend to dev.brdz.link
Version 1.1.21
- v1.1.21 :
- Delete Typo on 1.1.20
Version 1.1.20
- v1.1.20 :
- Depreceated signature endpoint in USDT Mining
Version 1.1.19
- v1.1.19 :
- Typo in api/ revison all code
Version 1.1.18
- v1.1.18 :
- Update USDT POLYGON Minting and all features
- Update with transfer Features
Version 1.1.17
- v1.1.17 : List Crypto Wallet
Version 1.1.16
- v1.1.16 : Fix OfframptoWallet
Version 1.1.15
- v1.1.15 : Fix Typo for v1.1.14
Version 1.1.14
- v1.1.14 : Adding Offramp to Wallet Function on Manual Offramp
Version 1.1.13
- v1.1.13 : Adding Typo in POS with api/
Version 1.1.12
- v1.1.12 : Adding QR Static to POS System
Version 1.1.11
- v1.1.11 : Adding Linking to External Wallet in CryptoWallet.js
Version 1.1.10
- v1.1.10 : Add pos to modules
Version 1.1.9
- v1.1.9 : Adding pos QR for D20/D30
Version 1.1.8
- v1.1.8 : Adding QRIS
Version 1.1.7
- v1.1.7r : Adding the configuration environment on API Key
- v1.1.7 : Adding the configuration environment
Version 1.1.6
- v1.1.6r3 : Adding Offramp History
- v1.1.6r2 : Adding Withdraw History
- v1.1.6r1 : Adding Flow USDT
- v1.1.6r : Adding IDRX to SDK Index
- v1.1.6 : Adding IDRX to SDK as BRDZ System
Version 1.1.5
- v1.1.5r4 : Typo revision
- v1.1.5r3 : revision on get manual trade
- v1.1.5r2 : revision on get live price IDR-USDC
- v1.1.5r1 : revision on get trade balance
- v1.1.5r : revision on index
- v1.1.5 (January 2025)
- โ
Added Marketplace module (5 methods) - AI conversational commerce
- โ
Product search across Etsy & Tokopedia with AI-powered chat
- โ
USDC payment integration for cross-border shopping
- โ
Order management with blockchain payment tracking
- ๐ค Groq AI assistant for natural language shopping experience
Version 1.1.4
- v1.1.4r (January 2025)
- โ
Added indodax disburse to Indodax modules (11 methods)
- v1.1.4 (January 2025)
- โ
Added Xendit module (22 methods) - Payment gateway for Indonesia
Version 1.1.3
- v1.1.3r2 - Adding admin get user_id info
- v1.1.3r1 - Revised all typo at v1.1.3
- v1.1.3r - Revised Bridge Modules
- v1.1.3 - Fix List Admin
Version 1.1.2
- v1.1.2 - Fix Admin and Users modules
Version 1.1.1
- v1.1.1 - Update the API Key Remove data
Version 1.1.0
- v1.1.0 - Added Two-Factor Authentication (2FA) module with 6 methods, enhanced auth module with completeLoginWith2FA`, simplified frontend integration (no custom hooks required)
Built with โค๏ธ by Anantla Technologies
Making blockchain and payments accessible to everyone with easy way