PHP code example of kmcpg / sdklaramvx

1. Go to this page and download the library: Download kmcpg/sdklaramvx library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

kmcpg / sdklaramvx example snippets


// Create a new wallet
$wallet = MultiversX::wallet()->createWallet();
echo $wallet['mnemonic']; // Save this securely
echo $wallet['address'];  // Wallet address

// Import from mnemonic
$imported = MultiversX::wallet()->importFromMnemonic(
    'word1 word2 word3 ... word24'
);

// Create keystore
$keystore = MultiversX::wallet()->createKeystore(
    'word1 word2 word3 ... word24',
    'strongPassword123'
);

// Connect with xPortal
$xportal = MultiversX::wallet()->initXPortalLogin();
$status = MultiversX::wallet()->checkXPortalLogin($xportal['token']);

// Connect with Web Wallet
$webWallet = MultiversX::wallet()->initWebWalletLogin();
$status = MultiversX::wallet()->checkWebWalletLogin($webWallet['token']);

// Connect with Ledger
$ledger = MultiversX::wallet()->initLedgerLogin();
$status = MultiversX::wallet()->checkLedgerLogin($ledger['token']);

// Logout
MultiversX::wallet()->logout();

// Check balance
$balance = MultiversX::account()->getBalance('erd1...');
$tokens = MultiversX::account()->getESDTTokens('erd1...');

// Send transaction
$transaction = [
    'nonce' => 1,
    'value' => '1000000000000000000', // 1 EGLD
    'receiver' => 'erd1...',
    'sender' => 'erd1...',
    'gasPrice' => 1000000000,
    'gasLimit' => 50000,
    'data' => base64_encode('hello'),
    'chainID' => '1',
    'version' => 1
];
$hash = MultiversX::transaction()->send($transaction);

// Deploy smart contract
$contract = [
    'code' => '0x...',
    'arguments' => ['arg1', 'arg2'],
    'gasLimit' => 500000
];
$result = MultiversX::smartContract()->deploy($contract);

// Wrap EGLD
$wrapTx = MultiversX::xExchange()->wrapEgld('1000000000000000000');

// Swap tokens
$quote = MultiversX::xExchange()->getSwapQuote(
    'WEGLD-bd4d79',
    'MEX-455c57',
    '1000000000000000000'
);
$swap = MultiversX::xExchange()->swap(
    'WEGLD-bd4d79',
    'MEX-455c57',
    '1000000000000000000',
    $quote['minAmountOut']
);

// Add liquidity
$addLiquidity = MultiversX::xExchange()->addLiquidity(
    'WEGLD-bd4d79',
    'MEX-455c57',
    '1000000000000000000',
    '1000000000000000000',
    '990000000000000000',
    '990000000000000000'
);

// Farm staking
$stakeFarm = MultiversX::xExchange()->stakeFarm(
    'erd1qqqqqqqqqqqqqpgqeel2kumf0r8ffyhth7pqdujjat9nx0862jpsg2pqaq',
    'LPTOK-abcdef',
    '1000000000000000000'
);

// Create NFT collection
$collection = MultiversX::nft()->createCollection(
    'MyCollection',
    'MYCOL',
    ['canFreeze' => true, 'canWipe' => true]
);

// Create dynamic NFT
$nft = MultiversX::dynamicNft()->createDynamicNft(
    'MYCOL',
    'My NFT',
    ['level' => 1, 'power' => 100],
    ['https://api.mysite.com/nft/1.json'],
    500 // 5% royalties
);

// Update NFT attributes
MultiversX::dynamicNft()->updateAttributes(
    'MYCOL',
    '1',
    ['level' => 2, 'power' => 150]
);

// Create SFT
$sft = MultiversX::nft()->createSft(
    'MYCOL',
    'My SFT',
    1000, // quantity
    ['rarity' => 'rare']
);

// Create Meta ESDT
$metaEsdt = MultiversX::nft()->createMetaEsdt(
    'MYCOL',
    'My Meta Token',
    10000, // quantity
    ['unlockEpoch' => 100]
);

// List NFT for sale
$listing = MultiversX::xoxno()->listNft(
    'MYCOL-abcdef',
    '1',
    '1000000000000000000', // 1 EGLD
    'WEGLD-bd4d79' // Optional, EGLD by default
);

// Buy NFT
$purchase = MultiversX::xoxno()->buyNft(
    'MYCOL-abcdef',
    '1',
    '1000000000000000000'
);

// Make offer
$offer = MultiversX::xoxno()->makeOffer(
    'MYCOL-abcdef',
    '1',
    '900000000000000000', // 0.9 EGLD
    time() + 86400 // Expires in 24h
);

// Get collection stats
$stats = MultiversX::xoxno()->getCollectionStats('MYCOL-abcdef');
$floor = MultiversX::xoxno()->getCollectionFloor('MYCOL-abcdef');
$recentSales = MultiversX::xoxno()->getRecentSales('MYCOL-abcdef', 5);

// Search NFTs
$searchResults = MultiversX::xoxno()->searchNfts([
    'collection' => 'MYCOL-abcdef',
    'traits' => [
        'background' => 'blue',
        'rarity' => 'legendary'
    ],
    'minPrice' => '100000000000000000',
    'maxPrice' => '2000000000000000000'
]);

// Deploy custom marketplace
$marketplace = MultiversX::marketplace()->deployMarketplace(
    'erd1...', // Owner address
    250        // 2.5% fee
);

// Configure accepted tokens
MultiversX::marketplace()->setAcceptedTokens(
    $marketplace['address'],
    [
        MarketplaceService::TOKEN_TYPE_NFT,
        MarketplaceService::TOKEN_TYPE_SFT,
        MarketplaceService::TOKEN_TYPE_META
    ]
);

// List token
$listing = MultiversX::marketplace()->listToken(
    $marketplace['address'],
    'MYCOL-abcdef',
    '1',
    '1000000000000000000', // 1 EGLD
    1,                     // Quantity (1 for NFT, >1 for SFT/Meta)
    'WEGLD-bd4d79'
);

// Buy token
$purchase = MultiversX::marketplace()->buyToken(
    $marketplace['address'],
    'MYCOL-abcdef',
    '1',
    '1000000000000000000',
    5                     // Buy 5 tokens (for SFT/Meta)
);

// Update dynamic token metadata
MultiversX::marketplace()->updateDynamicTokenMetadata(
    $marketplace['address'],
    'MYCOL-abcdef',
    '1',
    [
        'name' => 'Updated Name',
        'attributes' => [
            'level' => '2',
            'power' => '150'
        ]
    ]
);

// Get network info
$config = MultiversX::network()->getNetworkConfig();
$economics = MultiversX::network()->getNetworkEconomics();
$status = MultiversX::network()->getNetworkStatus();

// Validate address
$isValid = MultiversX::wallet()->validateAddress('erd1...');

// Convert units
$egld = MultiversX::utils()->convertToEGLD('1000000000000000000');
$wei = MultiversX::utils()->convertToWei('1.5');

// Hash data
$hash = MultiversX::utils()->keccak256('data');

// Encode/decode bech32
$encoded = MultiversX::utils()->encodeBech32('erd1', $publicKey);
$decoded = MultiversX::utils()->decodeBech32($address);

// Secure key generation
$entropy = MultiversX::security()->generateSecureEntropy();
$mnemonic = MultiversX::security()->generateMnemonic($entropy);

// Validate mnemonic
$isValid = MultiversX::security()->validateMnemonic($mnemonic);

// Encrypt sensitive data
$encrypted = MultiversX::security()->encryptData(
    $sensitiveData,
    $password,
    $salt
);

// Validate transaction input
$isValid = MultiversX::security()->validateTransactionInput([
    'value' => '1000000000000000000',
    'receiver' => 'erd1...',
    'data' => 'base64encoded'
]);