SDK Documentation
The @belizechain/gem-sdk provides a JavaScript/TypeScript interface for all GEM smart contracts. Full TypeScript definitions are included with interfaces for Balance, TokenMetadata, Proposal, FaucetStats, and TransactionResult.
Quick Reference
Installation
Install the GEM SDK and its peer dependencies.
npm install @belizechain/gem-sdk @polkadot/api @polkadot/api-contract
Connect to Node
Create a GemSDK instance and connect to a BelizeChain node.
const { GemSDK } = require('@belizechain/gem-sdk');
const sdk = new GemSDK('ws://localhost:9944');
await sdk.connect();Account Management
Get accounts from seed phrases or development URIs.
const alice = sdk.getAccount('//Alice');
const balance = await sdk.getBalance(alice.address);
console.log('Free:', balance.free);Transfer DALLA (PSP22)
Transfer fungible tokens between accounts.
await sdk.dallaTransfer( '5GD4w5...NVsNB', // DALLA contract alice, // sender bob.address, // recipient 100000000000000 // 100 DALLA (12 decimals) );
Mint NFT (PSP34)
Mint a non-fungible token with an IPFS metadata URI.
await sdk.nftMint( '5Ho6Ks...iFQL7', // BeliNFT contract alice, // minter (owner) bob.address, // recipient 'ipfs://QmYourHash' // token URI );
DAO Governance
Create proposals and cast votes.
const proposalId = await sdk.daoCreateProposal(
'5DAOAddress',
alice,
'Increase treasury allocation'
);
await sdk.daoVote('5DAOAddress', alice, proposalId, true);API Methods
Connection
connect(), disconnect()Accounts
getAccount(uri), getBalance(address)PSP22 (DALLA)
dallaTransfer, dallaBalanceOf, dallaMetadataPSP34 (NFT)
nftMint, nftOwnerOf, nftTokenUriDAO
daoCreateProposal, daoVote, daoGetProposalFaucet
faucetClaim, faucetCanClaim, faucetStatsContracts
loadContract(type, address)