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'
]);