BNB Smart Chain: BEP-1155 with Truffle & OpenZeppelin
Learn to create BEP-1155 multi-token contracts with Truffle and OpenZeppelin on BNB Smart Chain. Deploy fungible and non-fungible tokens using Chainstack nodes.
TLDR:
You’ll create a BEP-1155 contract combining fungible and non-fungible tokens in one deployment.
You’ll rely on OpenZeppelin libraries and Truffle to compile, deploy, and verify your tokens on BNB Smart Chain testnet via Chainstack.
You’ll flatten your code for a smooth verification on BscScan.
By the end, you’ll have fungible tokens (0) and NFT tokens (1) all in a single smart contract.
BEP-1155 is the multi-token standard for smart contracts that combines the fungibility of BEP-20 and the non-fungibility of BEP-721 in one contract.With a single BEP-1155 contract, you can deploy an ecosystem that has both fungible tokens (currency) and non-fungible tokens (NFTs).In this tutorial, you will:
Create a BEP-1155 contract that has a supply of fungible tokens and one non-fungible token.
Deploy the contract on the BNB Smart Chain testnet through a node deployed with Chainstack.
The contract creates two tokens: 100 fungible units of the currency called FUNGIBLE and 1 non-fungible unit called NON-FUNGIBLE. In the BEP-1155 standard, setting a token issuance to 1 makes it non-fungible.
The contract also has JSON_URI which is a locator for the metadata of your tokens hosted externally. For example, <https://token-cdn-domain/{id}.json>. See EIP-1155 for details.
Create 2_deploy_contracts.js in the migrations directory.
testnet — any network name that you will pass to the truffle migrate --network command.
HDWalletProvider — Truffle’s custom provider to sign transactions.
PRIVATE_KEY — the private key of your BNB Smart Chain account that will deploy the contract. The account must have enough BNB funds to run the deployment. See also BNB Smart Chain Faucet.
network_id — the network ID of the BNB Smart Chain network: mainnet is 56, testnet is 97.
solc — the Solidity compiler version that Truffle must use. OpenZeppelin contracts have a higher version Solidity compiler requirement than the default Truffle installation, hence you must provide a specific compiler version.
Run:
truffle migrate --network testnet
This will engage 2_deploy_contracts.js and deploy the contract to the BNB Smart Chain testnet as specified in truffle-config.js.
Once your contract is deployed, you can view it online at BscScan testnet.Network explorers, including BscScan, do not display the NFT standards by default, so you will have to perform additional steps to check the balance of your issued tokens. Namely, you must verify the contract on BscScan to interact with it online.
Since your BEP-1155 contract uses imported OpenZeppelin libraries, you must put all the imports into one .sol file to make BscScan be able to verify it.
Clean up the licensing information.The flattened contract will have the same licensing note imported from each of the files. Multiple licensing notes in one file break the BscScan verification, so you have to leave one licensing note for the entirety of the flattened contract.The easiest way to clean up is to search for the SPDX mentions in the file and remove all of them except for the very first one.
Find your deployed contract. The address of your contract should have been printed by Truffle at the end of the deployment in the contract address field.
On the contract page on BscScan, click Contract > Verify and Publish.
In Compiler Type, select Solidity (Single file).
In Compiler Version, select v0.8.2. This is the version this tutorial used to compile the contract.
Click Continue.
Keep the Optimization option set to No as Truffle does not use optimization by default.
Paste the entirety of your flattened .sol contract in the Enter the Solidity Contract Code below field.
Click Verify and Publish.
BscScan will take a few seconds to compile your contract, verify, and publish it.
This tutorial guided you through the basics of creating and deploying a contract in the BEP-1155 multi-token standard. The BEP-1155 is useful in that it can deploy an ecosystem of currencies and NFTs in one go—you can add however many fungible and non-fungible tokens to your contract.You also verified your deployed contract online and interacted with it.This tutorial uses testnet, however, the exact same instructions and sequence will work on the mainnet as well.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Chainstack","description":"Chainstack developer documentation — deploy and manage blockchain nodes across 70+ protocols via managed cloud infrastructure or self-hosted on your own Kubernetes","colors":{"primary":"#007aff","light":"#007aff","dark":"#007aff"},"logo":{"light":"https://mintcdn.com/chainstack/4kCLdVG8vhROt3j-/logo/light.svg?fit=max\u0026auto=format\u0026n=4kCLdVG8vhROt3j-\u0026q=85\u0026s=7d2d6d754203b9b3aa553e71ac4d9991","dark":"https://mintcdn.com/chainstack/4kCLdVG8vhROt3j-/logo/dark.svg?fit=max\u0026auto=format\u0026n=4kCLdVG8vhROt3j-\u0026q=85\u0026s=0f1b86eba2477ec37c2464be89df9e6d","href":"https://chainstack.com/"},"favicon":"https://mintcdn.com/chainstack/UN3rP7zhB69idvnC/favicon.png?fit=max\u0026auto=format\u0026n=UN3rP7zhB69idvnC\u0026q=85\u0026s=d58df95278b0108206c861030eca1a8a","api":{"openapi":["openapi/hyperliquid_node_api/hypercore_info/info_meta.json","openapi/hyperliquid_node_api/hypercore_info/info_meta_and_asset_ctxs.json","openapi/hyperliquid_node_api/hyperevm/evm_net_version.json","openapi/hyperliquid_node_api/hyperevm/evm_web3_client_version.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_block_number.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_call.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_chain_id.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_filter_changes.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_filter_logs.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_header_by_hash.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_header_by_number.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_transaction_by_sender_and_nonce.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_uncle_by_block_hash_and_index.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_uncle_by_block_number_and_index.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_new_filter.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_uninstall_filter.json","openapi/hyperliquid_node_api/hyperevm/evm_debug_get_raw_block.json","openapi/hyperliquid_node_api/hyperevm/evm_debug_get_raw_header.json","openapi/hyperliquid_node_api/hyperevm/evm_debug_get_raw_receipts.json","openapi/hyperliquid_node_api/hyperevm/evm_debug_get_raw_transaction.json","openapi/hyperliquid_node_api/hyperevm/evm_debug_trace_block.json","openapi/hyperliquid_node_api/hyperevm/evm_debug_trace_call.json","openapi/hyperliquid_node_api/hyperevm/evm_debug_trace_transaction.json","openapi/hyperliquid_node_api/hyperevm/evm_erigon_get_header_by_number.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_big_block_gas_price.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_blob_base_fee.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_call_many.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_create_access_list.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_estimate_gas.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_fee_history.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_gas_price.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_balance.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_block_by_hash.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_block_by_number.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_block_receipts.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_block_transaction_count_by_hash.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_block_transaction_count_by_number.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_code.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_logs.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_proof.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_raw_transaction_by_block_hash_and_index.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_raw_transaction_by_block_number_and_index.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_raw_transaction_by_hash.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_storage_at.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_system_txs_by_block_hash.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_system_txs_by_block_number.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_transaction_by_block_hash_and_index.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_transaction_by_block_number_and_index.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_transaction_by_hash.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_transaction_count.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_transaction_receipt.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_uncle_count_by_block_hash.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_get_uncle_count_by_block_number.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_max_priority_fee_per_gas.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_new_block_filter.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_protocol_version.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_send_raw_transaction.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_simulate_v1.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_syncing.json","openapi/hyperliquid_node_api/hyperevm/evm_eth_using_big_blocks.json","openapi/hyperliquid_node_api/hyperevm/evm_net_listening.json","openapi/hyperliquid_node_api/hyperevm/evm_net_peer_count.json","openapi/hyperliquid_node_api/hyperevm/evm_ots_get_api_level.json","openapi/hyperliquid_node_api/hyperevm/evm_ots_get_block_details.json","openapi/hyperliquid_node_api/hyperevm/evm_ots_get_block_details_by_hash.json","openapi/hyperliquid_node_api/hyperevm/evm_ots_get_block_transactions.json","openapi/hyperliquid_node_api/hyperevm/evm_ots_get_contract_creator.json","openapi/hyperliquid_node_api/hyperevm/evm_ots_get_header_by_number.json","openapi/hyperliquid_node_api/hyperevm/evm_ots_get_internal_operations.json","openapi/hyperliquid_node_api/hyperevm/evm_ots_get_transaction_by_sender_and_nonce.json","openapi/hyperliquid_node_api/hyperevm/evm_ots_get_transaction_error.json","openapi/hyperliquid_node_api/hyperevm/evm_ots_has_code.json","openapi/hyperliquid_node_api/hyperevm/evm_ots_trace_transaction.json","openapi/hyperliquid_node_api/hyperevm/evm_trace_block.json","openapi/hyperliquid_node_api/hyperevm/evm_trace_call.json","openapi/hyperliquid_node_api/hyperevm/evm_trace_call_many.json","openapi/hyperliquid_node_api/hyperevm/evm_trace_filter.json","openapi/hyperliquid_node_api/hyperevm/evm_trace_raw_transaction.json","openapi/hyperliquid_node_api/hyperevm/evm_trace_replay_block_transactions.json","openapi/hyperliquid_node_api/hyperevm/evm_trace_replay_transaction.json","openapi/hyperliquid_node_api/hypercore_info/info_batch_clearinghouse_states.json","openapi/hyperliquid_node_api/hypercore_info/info_funding_history.json","openapi/hyperliquid_node_api/hypercore_info/info_predicted_fundings.json","openapi/hyperliquid_node_api/hypercore_info/info_spot_meta_and_asset_ctxs.json","openapi/hyperliquid_node_api/hypercore_info/info_token_details.json","openapi/hyperliquid_node_api/hypercore_info/info_user_funding.json","openapi/hyperliquid_node_api/hypercore_info/info_user_non_funding_ledger_updates.json","openapi/hyperliquid_node_api/hypercore_info/info_spotmeta.json","openapi/hyperliquid_node_api/hypercore_info/info_clearinghousestate.json","openapi/hyperliquid_node_api/hypercore_info/info_spotclearinghousestate.json","openapi/hyperliquid_node_api/hypercore_info/info_openorders.json","openapi/hyperliquid_node_api/hypercore_info/info_exchangestatus.json","openapi/hyperliquid_node_api/hypercore_info/info_frontendopenorders.json","openapi/hyperliquid_node_api/hypercore_info/info_liquidatable.json","openapi/hyperliquid_node_api/hypercore_info/info_activeassetdata.json","openapi/hyperliquid_node_api/hypercore_info/info_maxmarketorderntls.json","openapi/hyperliquid_node_api/hypercore_info/info_vaultsummaries.json","openapi/hyperliquid_node_api/hypercore_info/info_uservaultequities.json","openapi/hyperliquid_node_api/hypercore_info/info_leadingvaults.json","openapi/hyperliquid_node_api/hypercore_info/info_extraagents.json","openapi/hyperliquid_node_api/hypercore_info/info_subaccounts.json","openapi/hyperliquid_node_api/hypercore_info/info_userfees.json","openapi/hyperliquid_node_api/hypercore_info/info_userratelimit.json","openapi/hyperliquid_node_api/hypercore_info/info_spotdeploystate.json","openapi/hyperliquid_node_api/hypercore_info/info_perpdeployauctionstatus.json","openapi/hyperliquid_node_api/hypercore_info/info_delegations.json","openapi/hyperliquid_node_api/hypercore_info/info_perpdexs.json","openapi/hyperliquid_node_api/hypercore_info/info_delegator_summary.json","openapi/hyperliquid_node_api/hypercore_info/info_delegator_history.json","openapi/hyperliquid_node_api/hypercore_info/info_delegator_rewards.json","openapi/hyperliquid_node_api/hypercore_info/info_max_builder_fee.json","openapi/hyperliquid_node_api/hypercore_info/info_user_to_multi_sig_signers.json","openapi/hyperliquid_node_api/hypercore_info/info_user_role.json","openapi/hyperliquid_node_api/hypercore_info/info_perps_at_open_interest_cap.json","openapi/hyperliquid_node_api/hypercore_info/info_validator_l1_votes.json","openapi/hyperliquid_node_api/hypercore_info/info_web_data2.json","openapi/hyperliquid_node_api/hypercore_info/info_allmids.json","openapi/hyperliquid_node_api/hypercore_info/info_user_fills.json","openapi/hyperliquid_node_api/hypercore_info/info_user_fills_by_time.json","openapi/hyperliquid_node_api/hypercore_info/info_portfolio.json","openapi/hyperliquid_node_api/hypercore_info/info_referral.json","openapi/hyperliquid_node_api/hypercore_info/info_order_status.json","openapi/hyperliquid_node_api/hypercore_info/info_l2_book.json","openapi/hyperliquid_node_api/hypercore_info/info_candle_snapshot.json","openapi/hyperliquid_node_api/hypercore_info/info_historical_orders.json","openapi/hyperliquid_node_api/hypercore_info/info_user_twap_slice_fills.json","openapi/hyperliquid_node_api/hypercore_info/info_recent_trades.json","openapi/hyperliquid_node_api/hypercore_info/info_vault_details.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_place_order.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_cancel_order.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_cancel_by_cloid.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_schedule_cancel.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_modify_order.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_batch_modify.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_update_leverage.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_update_isolated_margin.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_usd_send.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_spot_send.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_withdraw.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_spot_perp_transfer.json","openapi/hyperliquid_node_api/hypercore_info/info_web_data3.json","openapi/hyperliquid_node_api/hypercore_info/info_user_dex_abstraction.json","openapi/hyperliquid_node_api/hypercore_info/info_user_abstraction.json","openapi/hyperliquid_node_api/hypercore_info/info_borrow_lend_user_state.json","openapi/hyperliquid_node_api/hypercore_info/info_borrow_lend_reserve_state.json","openapi/hyperliquid_node_api/hypercore_info/info_all_borrow_lend_reserve_states.json","openapi/hyperliquid_node_api/hypercore_info/info_all_perp_metas.json","openapi/hyperliquid_node_api/hypercore_info/info_perp_annotation.json","openapi/hyperliquid_node_api/hypercore_info/info_perp_categories.json","openapi/hyperliquid_node_api/hypercore_info/info_perp_dex_limits.json","openapi/hyperliquid_node_api/hypercore_info/info_perp_dex_status.json","openapi/hyperliquid_node_api/hypercore_info/info_spot_pair_deploy_auction_status.json","openapi/hyperliquid_node_api/hypercore_info/info_margin_table.json","openapi/hyperliquid_node_api/hypercore_info/info_aligned_quote_token_info.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_twap_order.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_twap_cancel.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_approve_agent.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_approve_builder_fee.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_set_referrer.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_create_sub_account.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_sub_account_transfer.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_sub_account_spot_transfer.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_convert_to_multi_sig_user.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_multi_sig.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_user_set_abstraction.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_agent_set_abstraction.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_user_dex_abstraction.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_agent_enable_dex_abstraction.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_evm_user_modify.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_send_asset.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_send_to_evm_with_data.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_vault_transfer.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_token_delegate.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_c_deposit.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_c_withdraw.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_spot_deploy.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_perp_deploy.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_c_signer_action.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_c_validator_action.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_validator_l1_stream.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_noop.json","openapi/hyperliquid_node_api/hypercore_exchange/exchange_reserve_request_weight.json","openapi/hyperliquid_node_api/hyperevm/evm_debug_trace_block_by_number.json","openapi/ethereum_node_api/transaction_info/eth_getTransactionReceipt.json","openapi/ethereum_node_api/transaction_info/eth_getTransactionByBlockNumberAndIndex.json","openapi/ethereum_node_api/transaction_info/eth_getBlockReceipts.json","openapi/ethereum_node_api/transaction_info/eth_getTransactionByHash.json","openapi/ethereum_node_api/transaction_info/eth_newPendingTransactionFilter.json","openapi/ethereum_node_api/transaction_info/eth_getTransactionByBlockHashAndIndex.json","openapi/ethereum_node_api/chain_info/eth_syncing.json","openapi/ethereum_node_api/chain_info/eth_chainId.json","openapi/ethereum_node_api/debug_and_trace/custom_js_tracer.json","openapi/ethereum_node_api/debug_and_trace/debug_traceTransaction.json","openapi/ethereum_node_api/debug_and_trace/debug_traceCall.json","openapi/ethereum_node_api/debug_and_trace/trace_transaction.json","openapi/ethereum_node_api/debug_and_trace/debug_traceBlockByHash.json","openapi/ethereum_node_api/debug_and_trace/trace_block.json","openapi/ethereum_node_api/debug_and_trace/debug_traceBlockByNumber.json","openapi/ethereum_node_api/gas_data/eth_gasPrice.json","openapi/ethereum_node_api/gas_data/eth_estimateGas.json","openapi/ethereum_node_api/gas_data/eth_maxPriorityFeePerGas.json","openapi/ethereum_node_api/filter_handling/eth_getFilterChanges.json","openapi/ethereum_node_api/filter_handling/eth_uninstallFilter.json","openapi/ethereum_node_api/client_info/net_peerCount.json","openapi/ethereum_node_api/client_info/net_listening.json","openapi/ethereum_node_api/client_info/web3_clientVersion.json","openapi/ethereum_node_api/blocks_info/eth_getBlockByNumber.json","openapi/ethereum_node_api/blocks_info/eth_getBlockTransactionCountByHash.json","openapi/ethereum_node_api/blocks_info/eth_blockNumber.json","openapi/ethereum_node_api/blocks_info/eth_newBlockFilter.json","openapi/ethereum_node_api/blocks_info/eth_getBlockByHash.json","openapi/ethereum_node_api/blocks_info/eth_getBlockTransactionCountByNumber.json","openapi/ethereum_node_api/accounts_info/eth_getStorageAt.json","openapi/ethereum_node_api/accounts_info/eth_getBalance.json","openapi/ethereum_node_api/accounts_info/eth_getTransactionCount.json","openapi/ethereum_node_api/accounts_info/eth_getCode.json","openapi/ethereum_node_api/accounts_info/eth_getProof.json","openapi/ethereum_node_api/logs_and_events/eth_newFilter.json","openapi/ethereum_node_api/logs_and_events/eth_getLogs.json","openapi/ethereum_node_api/execute_transactions/eth_simulateV1.json","openapi/ethereum_node_api/execute_transactions/eth_call.json","openapi/ethereum_node_api/execute_transactions/eth_sendRawTransaction.json","openapi/ethereum_beacon_chain_api/configuration_info/node_config.json","openapi/ethereum_beacon_chain_api/configuration_info/genesis_data.json","openapi/ethereum_beacon_chain_api/configuration_info/fork_schedule.json","openapi/ethereum_beacon_chain_api/configuration_info/fork_version_by_state_id.json","openapi/ethereum_beacon_chain_api/configuration_info/deposit_contract.json","openapi/ethereum_beacon_chain_api/state/getStateRoot.json","openapi/ethereum_beacon_chain_api/state/getFinalityCheckpoints.json","openapi/ethereum_beacon_chain_api/state/getCommitteesByStateIdEpochIndexAndSlot.json","openapi/ethereum_beacon_chain_api/state/getBlobsByBlockId.json","openapi/ethereum_beacon_chain_api/state/getSyncCommitteeContribution.json","openapi/ethereum_beacon_chain_api/state/getBeaconBlockRootByBlockId.json","openapi/ethereum_beacon_chain_api/state/getBeaconBlocksByBlockId.json","openapi/ethereum_beacon_chain_api/state/getBeaconHeadersByBlockId.json","openapi/ethereum_beacon_chain_api/state/getBeaconHeadersBySlotAndParentRoot.json","openapi/ethereum_beacon_chain_api/state/getSyncCommitteesByStateIdAndEpoch.json","openapi/ethereum_beacon_chain_api/events/subscribe_to_events.json","openapi/ethereum_beacon_chain_api/validatiors_info/validator_information_by_state_id.json","openapi/ethereum_beacon_chain_api/validatiors_info/proposer_duties.json","openapi/ethereum_beacon_chain_api/validatiors_info/validator_information_by_state_id_or_public_key.json","openapi/ethereum_beacon_chain_api/validatiors_info/attestation_data.json","openapi/ethereum_beacon_chain_api/validatiors_info/produce_unsigned_blinded_block.json","openapi/ethereum_beacon_chain_api/validatiors_info/voluntary_exits.json","openapi/ethereum_beacon_chain_api/validatiors_info/produce_unsigned_block.json","openapi/ethereum_beacon_chain_api/validatiors_info/attestation_of_beacon_block_by_block_id.json","openapi/ethereum_beacon_chain_api/validatiors_info/proposer_slashings.json","openapi/ethereum_beacon_chain_api/validatiors_info/validator_balances.json","openapi/ethereum_beacon_chain_api/validatiors_info/attester_slashings.json","openapi/ethereum_beacon_chain_api/validatiors_info/beacon_pool_attestations.json","openapi/polygon_node_api/transaction_info/eth_getTransactionReceipt.json","openapi/polygon_node_api/transaction_info/eth_getTransactionByBlockNumberAndIndex.json","openapi/polygon_node_api/transaction_info/eth_getBlockReceipts.json","openapi/polygon_node_api/transaction_info/eth_getTransactionByHash.json","openapi/polygon_node_api/transaction_info/eth_newPendingTransactionFilter.json","openapi/polygon_node_api/transaction_info/eth_getTransactionByBlockHashAndIndex.json","openapi/polygon_node_api/chain_info/eth_syncing.json","openapi/polygon_node_api/chain_info/eth_chainId.json","openapi/polygon_node_api/debug_and_trace/debug_traceTransaction.json","openapi/polygon_node_api/debug_and_trace/debug_traceCall.json","openapi/polygon_node_api/debug_and_trace/debug_traceBlockByHash.json","openapi/polygon_node_api/debug_and_trace/debug_traceBlockByNumber.json","openapi/polygon_node_api/gas_data/eth_gasPrice.json","openapi/polygon_node_api/gas_data/eth_estimateGas.json","openapi/polygon_node_api/filter_handling/eth_getFilterChanges.json","openapi/polygon_node_api/filter_handling/eth_uninstallFilter.json","openapi/polygon_node_api/client_info/net_peerCount.json","openapi/polygon_node_api/client_info/net_listening.json","openapi/polygon_node_api/client_info/web3_clientVersion.json","openapi/polygon_node_api/blocks_info/eth_getBlockByNumber.json","openapi/polygon_node_api/blocks_info/eth_getBlockTransactionCountByHash.json","openapi/polygon_node_api/blocks_info/eth_blockNumber.json","openapi/polygon_node_api/blocks_info/eth_newBlockFilter.json","openapi/polygon_node_api/blocks_info/eth_getBlockByHash.json","openapi/polygon_node_api/blocks_info/eth_getBlockTransactionCountByNumber.json","openapi/polygon_node_api/account_info/eth_getStorageAt.json","openapi/polygon_node_api/account_info/eth_getBalance.json","openapi/polygon_node_api/account_info/eth_getTransactionCount.json","openapi/polygon_node_api/account_info/eth_getCode.json","openapi/polygon_node_api/logs_and_events/eth_newFilter.json","openapi/polygon_node_api/logs_and_events/eth_getLogs.json","openapi/polygon_node_api/execute_transactions/eth_call.json","openapi/polygon_node_api/execute_transactions/eth_sendRawTransaction.json","openapi/bnb_node_api/eth_getBlockByNumber.json","openapi/bnb_node_api/eth_getTransactionReceipt.json","openapi/bnb_node_api/eth_getStorageAt.json","openapi/bnb_node_api/eth_getTransactionByBlockNumberAndIndex.json","openapi/bnb_node_api/eth_getBlockTransactionCountByHash.json","openapi/bnb_node_api/eth_getBalance.json","openapi/bnb_node_api/net_peerCount.json","openapi/bnb_node_api/eth_gasPrice.json","openapi/bnb_node_api/trace_replayBlockTransactions.json","openapi/bnb_node_api/trace_callMany.json","openapi/bnb_node_api/eth_blockNumber.json","openapi/bnb_node_api/trace_get.json","openapi/bnb_node_api/net_listening.json","openapi/bnb_node_api/custom_js_tracer.json","openapi/bnb_node_api/eth_newBlockFilter.json","openapi/bnb_node_api/eth_getFilterChanges.json","openapi/bnb_node_api/debug_traceTransaction.json","openapi/bnb_node_api/eth_estimateGas.json","openapi/bnb_node_api/eth_getTransactionCount.json","openapi/bnb_node_api/eth_getBlockReceipts.json","openapi/bnb_node_api/debug_traceCall.json","openapi/bnb_node_api/trace_replayTransaction.json","openapi/bnb_node_api/eth_getTransactionByHash.json","openapi/bnb_node_api/eth_newPendingTransactionFilter.json","openapi/bnb_node_api/eth_syncing.json","openapi/bnb_node_api/trace_transaction.json","openapi/bnb_node_api/debug_traceBlockByHash.json","openapi/bnb_node_api/eth_getBlockByHash.json","openapi/bnb_node_api/eth_call.json","openapi/bnb_node_api/eth_chainId.json","openapi/bnb_node_api/trace_block.json","openapi/bnb_node_api/eth_getBlockTransactionCountByNumber.json","openapi/bnb_node_api/eth_uninstallFilter.json","openapi/bnb_node_api/trace_call.json","openapi/bnb_node_api/eth_getCode.json","openapi/bnb_node_api/eth_maxPriorityFeePerGas.json","openapi/bnb_node_api/web3_clientVersion.json","openapi/bnb_node_api/eth_getTransactionByBlockHashAndIndex.json","openapi/bnb_node_api/eth_newFilter.json","openapi/bnb_node_api/eth_getLogs.json","openapi/bnb_node_api/eth_getProof.json","openapi/bnb_node_api/debug_traceBlockByNumber.json","openapi/bnb_node_api/eth_sendRawTransaction.json","openapi/base_node_api/eth_protocolVersion.json","openapi/base_node_api/eth_getUncleByBlockNumberAndIndex.json","openapi/base_node_api/eth_getBlockByNumber.json","openapi/base_node_api/eth_getTransactionReceipt.json","openapi/base_node_api/eth_getStorageAt.json","openapi/base_node_api/debug_traceCallMany.json","openapi/base_node_api/eth_getTransactionByBlockNumberAndIndex.json","openapi/base_node_api/eth_getBlockTransactionCountByHash.json","openapi/base_node_api/eth_getUncleCountByBlockHash.json","openapi/base_node_api/eth_getBalance.json","openapi/base_node_api/eth_getRawTransactionByBlockNumberAndIndex.json","openapi/base_node_api/debug_getModifiedAccountsByNumber.json","openapi/base_node_api/eth_gasPrice.json","openapi/base_node_api/trace_replayBlockTransactions.json","openapi/base_node_api/eth_blockNumber.json","openapi/base_node_api/trace_get.json","openapi/base_node_api/eth_getFilterLogs.json","openapi/base_node_api/eth_getUncleCountByBlockNumber.json","openapi/base_node_api/eth_createAccessList.json","openapi/base_node_api/net_listening.json","openapi/base_node_api/eth_newBlockFilter.json","openapi/base_node_api/eth_getFilterChanges.json","openapi/base_node_api/debug_traceTransaction.json","openapi/base_node_api/eth_estimateGas.json","openapi/base_node_api/eth_getTransactionCount.json","openapi/base_node_api/eth_getBlockReceipts.json","openapi/base_node_api/debug_traceCall.json","openapi/base_node_api/trace_replayTransaction.json","openapi/base_node_api/eth_getTransactionByHash.json","openapi/base_node_api/eth_getRawTransactionByHash.json","openapi/base_node_api/eth_newPendingTransactionFilter.json","openapi/base_node_api/eth_syncing.json","openapi/base_node_api/trace_transaction.json","openapi/base_node_api/debug_traceBlockByHash.json","openapi/base_node_api/eth_accounts.json","openapi/base_node_api/eth_getBlockByHash.json","openapi/base_node_api/web3_sha3.json","openapi/base_node_api/eth_callMany.json","openapi/base_node_api/eth_call.json","openapi/base_node_api/eth_chainId.json","openapi/base_node_api/eth_feeHistory.json","openapi/base_node_api/trace_block.json","openapi/base_node_api/eth_getBlockTransactionCountByNumber.json","openapi/base_node_api/eth_uninstallFilter.json","openapi/base_node_api/debug_storageRangeAt.json","openapi/base_node_api/trace_call.json","openapi/base_node_api/eth_getCode.json","openapi/base_node_api/eth_maxPriorityFeePerGas.json","openapi/base_node_api/debug_getModifiedAccountsByHash.json","openapi/base_node_api/web3_clientVersion.json","openapi/base_node_api/trace_callMany_method.json","openapi/base_node_api/eth_getRawTransactionByBlockHashAndIndex.json","openapi/base_node_api/eth_getTransactionByBlockHashAndIndex.json","openapi/base_node_api/eth_getUncleByBlockHashAndIndex.json","openapi/base_node_api/eth_newFilter.json","openapi/base_node_api/eth_getLogs.json","openapi/base_node_api/eth_getProof.json","openapi/base_node_api/debug_traceBlockByNumber.json","openapi/base_node_api/eth_sendRawTransaction.json","openapi/base_node_api/eth_sendRawTransactionSync.json","openapi/avalanche_node_api/chain_info/eth_syncing.json","openapi/avalanche_node_api/chain_info/eth_chainId.json","openapi/avalanche_node_api/debug_and_trace/debug_traceTransaction.json","openapi/avalanche_node_api/debug_and_trace/debug_traceCall.json","openapi/avalanche_node_api/debug_and_trace/debug_traceBlockByHash.json","openapi/avalanche_node_api/debug_and_trace/debug_traceBlockByNumber.json","openapi/avalanche_node_api/gas_data/eth_gasPrice.json","openapi/avalanche_node_api/gas_data/eth_estimateGas.json","openapi/avalanche_node_api/transactions_info/eth_getTransactionReceipt.json","openapi/avalanche_node_api/transactions_info/eth_getTransactionByBlockNumberAndIndex.json","openapi/avalanche_node_api/transactions_info/eth_getTransactionByHash.json","openapi/avalanche_node_api/transactions_info/eth_newPendingTransactionFilter.json","openapi/avalanche_node_api/transactions_info/eth_getTransactionByBlockHashAndIndex.json","openapi/avalanche_node_api/filter_handling/eth_getFilterChanges.json","openapi/avalanche_node_api/filter_handling/eth_uninstallFilter.json","openapi/avalanche_node_api/client_info/net_listening.json","openapi/avalanche_node_api/client_info/web3_clientVersion.json","openapi/avalanche_node_api/blocks_info/eth_getBlockByNumber.json","openapi/avalanche_node_api/blocks_info/eth_getBlockTransactionCountByHash.json","openapi/avalanche_node_api/blocks_info/eth_blockNumber.json","openapi/avalanche_node_api/blocks_info/eth_newBlockFilter.json","openapi/avalanche_node_api/blocks_info/eth_getBlockByHash.json","openapi/avalanche_node_api/blocks_info/eth_getBlockTransactionCountByNumber.json","openapi/avalanche_node_api/accounts_info/eth_getStorageAt.json","openapi/avalanche_node_api/accounts_info/eth_getBalance.json","openapi/avalanche_node_api/accounts_info/eth_getTransactionCount.json","openapi/avalanche_node_api/accounts_info/eth_getCode.json","openapi/avalanche_node_api/logs_and_events/eth_newFilter.json","openapi/avalanche_node_api/logs_and_events/eth_getLogs.json","openapi/avalanche_node_api/execute_transactions/eth_call.json","openapi/avalanche_node_api/execute_transactions/eth_sendRawTransaction.json","openapi/ton_node_api/v2/getMasterchainBlockSignatures.json","openapi/ton_node_api/v2/getBlockTransactionsExt.json","openapi/ton_node_api/v2/runGetMethod.json","openapi/ton_node_api/v2/getAddressState.json","openapi/ton_node_api/v2/unpackAddress.json","openapi/ton_node_api/v2/lookupBlock.json","openapi/ton_node_api/v2/tryLocateTx.json","openapi/ton_node_api/v2/tryLocateResultTx.json","openapi/ton_node_api/v2/getTransactions.json","openapi/ton_node_api/v2/packAddress.json","openapi/ton_node_api/v2/getExtendedAddressInformation.json","openapi/ton_node_api/v2/getBlockHeader.json","openapi/ton_node_api/v2/getMasterchainInfo.json","openapi/ton_node_api/v2/getWalletInformation.json","openapi/ton_node_api/v2/tryLocateSourceTx.json","openapi/ton_node_api/v2/getBlockTransactions.json","openapi/ton_node_api/v2/getAddressInformation.json","openapi/ton_node_api/v2/detectAddress.json","openapi/ton_node_api/v2/getShardBlockProof.json","openapi/ton_node_api/v2/getAddressBalance.json","openapi/ton_node_api/v2/getConsensusBlock.json","openapi/ton_node_api/v2/shards.json","openapi/ton_node_api/v2/getConfigParam.json","openapi/ton_node_api/v2/getTokenData.json","openapi/ton_node_api/v3/runGetMethod.json","openapi/ton_node_api/v3/getNFTTransfers.json","openapi/ton_node_api/v3/getMasterchainBlockShardState.json","openapi/ton_node_api/v3/getNFTItems.json","openapi/ton_node_api/v3/getWalletInfo.json","openapi/ton_node_api/v3/getTransactions.json","openapi/ton_node_api/v3/getTransactionsByMasterchainBlock.json","openapi/ton_node_api/v3/getMasterchainInfo.json","openapi/ton_node_api/v3/estimateFee.json","openapi/ton_node_api/v3/getAdjacentTransactions.json","openapi/ton_node_api/v3/getTransactionsByMessage.json","openapi/ton_node_api/v3/getJettonMasters.json","openapi/ton_node_api/v3/getNFTCollections.json","openapi/ton_node_api/v3/getJettonWallets.json","openapi/ton_node_api/v3/getBlocks.json","openapi/ton_node_api/v3/getJettonTransfers.json","openapi/ton_node_api/v3/getAccountInfo.json","openapi/ton_node_api/v3/getAddressBookInfo.json","openapi/ton_node_api/v3/getMessages.json","openapi/ton_node_api/v3/getJettonBurns.json","openapi/ton_node_api/v3/getMasterchainBlockShards.json","openapi/arbitrum_node_api/transaction_info/eth_getTransactionReceipt.json","openapi/arbitrum_node_api/transaction_info/eth_getTransactionByBlockNumberAndIndex.json","openapi/arbitrum_node_api/transaction_info/eth_getTransactionByHash.json","openapi/arbitrum_node_api/transaction_info/eth_getTransactionByBlockHashAndIndex.json","openapi/arbitrum_node_api/transaction_info/eth_simulateV1.json","openapi/arbitrum_node_api/chain_info/eth_syncing.json","openapi/arbitrum_node_api/chain_info/eth_chainId.json","openapi/arbitrum_node_api/debug_and_trace/arbtrace_callMany.json","openapi/arbitrum_node_api/debug_and_trace/arbtrace_transaction.json","openapi/arbitrum_node_api/debug_and_trace/arbtrace_filter.json","openapi/arbitrum_node_api/debug_and_trace/arbtrace_replayBlockTransactions.json","openapi/arbitrum_node_api/debug_and_trace/arbtrace_get.json","openapi/arbitrum_node_api/debug_and_trace/arbtrace_replayTransaction.json","openapi/arbitrum_node_api/debug_and_trace/arbtrace_block.json","openapi/arbitrum_node_api/debug_and_trace/arbtrace_call.json","openapi/arbitrum_node_api/gas_data/eth_gasPrice.json","openapi/arbitrum_node_api/gas_data/eth_estimateGas.json","openapi/arbitrum_node_api/filter_handling/eth_getFilterChanges.json","openapi/arbitrum_node_api/filter_handling/eth_uninstallFilter.json","openapi/arbitrum_node_api/client_info/web3_clientVersion.json","openapi/arbitrum_node_api/blocks_info/eth_getBlockByNumber.json","openapi/arbitrum_node_api/blocks_info/eth_getBlockTransactionCountByHash.json","openapi/arbitrum_node_api/blocks_info/eth_blockNumber.json","openapi/arbitrum_node_api/blocks_info/eth_newBlockFilter.json","openapi/arbitrum_node_api/blocks_info/eth_getBlockByHash.json","openapi/arbitrum_node_api/blocks_info/eth_getBlockTransactionCountByNumber.json","openapi/arbitrum_node_api/accounts_info/eth_getStorageAt.json","openapi/arbitrum_node_api/accounts_info/eth_getBalance.json","openapi/arbitrum_node_api/accounts_info/eth_getTransactionCount.json","openapi/arbitrum_node_api/accounts_info/eth_getCode.json","openapi/arbitrum_node_api/logs_and_events/eth_newFilter.json","openapi/arbitrum_node_api/logs_and_events/eth_getLogs.json","openapi/arbitrum_node_api/execute_transactions/eth_call.json","openapi/arbitrum_node_api/execute_transactions/eth_sendRawTransaction.json","openapi/zksync_node_api/zks_getTestnetPaymaster.json","openapi/zksync_node_api/zks_estimateFee.json","openapi/zksync_node_api/zks_estimateGasL1ToL2.json","openapi/zksync_node_api/zks_getBytecodeByHash.json","openapi/zksync_node_api/zks_getMainContract.json","openapi/zksync_node_api/zks_L1ChainId.json","openapi/zksync_node_api/zks_getBlockDetails.json","openapi/zksync_node_api/zks_getBridgeContracts.json","openapi/zksync_node_api/zks_getL2ToL1LogProof.json","openapi/zksync_node_api/zks_getAllAccountBalances.json","openapi/zksync_node_api/zks_L1BatchNumber.json","openapi/zksync_node_api/zks_getL1BatchBlockRange.json","openapi/zksync_node_api/zks_getL1BatchDetails.json","openapi/zksync_node_api/zks_getTransactionDetails.json","openapi/zksync_node_api/zks_getRawBlockTransactions.json","openapi/optimism_node_api/eth_getBlockByNumber.json","openapi/optimism_node_api/eth_getTransactionReceipt.json","openapi/optimism_node_api/eth_getStorageAt.json","openapi/optimism_node_api/debug_traceCallMany.json","openapi/optimism_node_api/eth_getTransactionByBlockNumberAndIndex.json","openapi/optimism_node_api/eth_getBlockTransactionCountByHash.json","openapi/optimism_node_api/eth_getUncleCountByBlockHash.json","openapi/optimism_node_api/eth_getBalance.json","openapi/optimism_node_api/eth_getRawTransactionByBlockNumberAndIndex.json","openapi/optimism_node_api/debug_getModifiedAccountsByNumber.json","openapi/optimism_node_api/eth_gasPrice.json","openapi/optimism_node_api/eth_blockNumber.json","openapi/optimism_node_api/eth_getFilterLogs.json","openapi/optimism_node_api/eth_getUncleCountByBlockNumber.json","openapi/optimism_node_api/eth_createAccessList.json","openapi/optimism_node_api/net_listening.json","openapi/optimism_node_api/eth_newBlockFilter.json","openapi/optimism_node_api/eth_getFilterChanges.json","openapi/optimism_node_api/debug_traceTransaction.json","openapi/optimism_node_api/eth_estimateGas.json","openapi/optimism_node_api/eth_getTransactionCount.json","openapi/optimism_node_api/eth_getBlockReceipts.json","openapi/optimism_node_api/debug_traceCall.json","openapi/optimism_node_api/eth_getTransactionByHash.json","openapi/optimism_node_api/eth_getRawTransactionByHash.json","openapi/optimism_node_api/eth_syncing.json","openapi/optimism_node_api/debug_traceBlockByHash.json","openapi/optimism_node_api/eth_getBlockByHash.json","openapi/optimism_node_api/web3_sha3.json","openapi/optimism_node_api/eth_callMany.json","openapi/optimism_node_api/eth_call.json","openapi/optimism_node_api/eth_chainId.json","openapi/optimism_node_api/eth_feeHistory.json","openapi/optimism_node_api/eth_getBlockTransactionCountByNumber.json","openapi/optimism_node_api/eth_uninstallFilter.json","openapi/optimism_node_api/debug_storageRangeAt.json","openapi/optimism_node_api/eth_getCode.json","openapi/optimism_node_api/eth_maxPriorityFeePerGas.json","openapi/optimism_node_api/debug_getModifiedAccountsByHash.json","openapi/optimism_node_api/web3_clientVersion.json","openapi/optimism_node_api/eth_getRawTransactionByBlockHashAndIndex.json","openapi/optimism_node_api/eth_getTransactionByBlockHashAndIndex.json","openapi/optimism_node_api/eth_newFilter.json","openapi/optimism_node_api/eth_getLogs.json","openapi/optimism_node_api/eth_getProof.json","openapi/optimism_node_api/debug_traceBlockByNumber.json","openapi/optimism_node_api/eth_sendRawTransaction.json","openapi/solana_node_api/getLatestBlockhash.json","openapi/solana_node_api/getRecentPrioritizationFees.json","openapi/solana_node_api/getInflationRate.json","openapi/solana_node_api/getBlockProduction.json","openapi/solana_node_api/getHighestSnapshotSlot.json","openapi/solana_node_api/getMaxShredInsertSlot.json","openapi/solana_node_api/getFirstAvailableBlock.json","openapi/solana_node_api/getBlockTime.json","openapi/solana_node_api/getMinimumBalanceForRentExemption.json","openapi/solana_node_api/getProgramAccounts.json","openapi/solana_node_api/getBlock.json","openapi/solana_node_api/getInflationReward.json","openapi/solana_node_api/getFeeForMessage.json","openapi/solana_node_api/getClusterNodes.json","openapi/solana_node_api/getStakeMinimumDelegation.json","openapi/solana_node_api/getTokenAccountsByOwner.json","openapi/solana_node_api/simulateTransaction.json","openapi/solana_node_api/sendTransaction.json","openapi/solana_node_api/getTransactionCount.json","openapi/solana_node_api/getVersion.json","openapi/solana_node_api/getVoteAccounts.json","openapi/solana_node_api/getSlotLeaders.json","openapi/solana_node_api/minimumLedgerSlot.json","openapi/solana_node_api/getTokenSupply.json","openapi/solana_node_api/getTokenAccountsByDelegate.json","openapi/solana_node_api/getHealth.json","openapi/solana_node_api/getGenesisHash.json","openapi/solana_node_api/getSignaturesForAddress.json","openapi/solana_node_api/isBlockhashValid.json","openapi/solana_node_api/getRecentBlockhash.json","openapi/solana_node_api/getBalance.json","openapi/solana_node_api/getSignatureStatuses.json","openapi/solana_node_api/getLeaderSchedule.json","openapi/solana_node_api/getSlotLeader.json","openapi/solana_node_api/getEpochInfo.json","openapi/solana_node_api/getEpochSchedule.json","openapi/solana_node_api/getTokenAccountBalance.json","openapi/solana_node_api/getLargestAccounts.json","openapi/solana_node_api/getRecentPerformanceSamples.json","openapi/solana_node_api/getSupply.json","openapi/solana_node_api/getBlocks.json","openapi/solana_node_api/getInflationGovernor.json","openapi/solana_node_api/getIdentity.json","openapi/solana_node_api/getAccountInfo.json","openapi/solana_node_api/getTokenLargestAccounts.json","openapi/solana_node_api/getBlockCommitment.json","openapi/solana_node_api/getMaxRetransmitSlot.json","openapi/solana_node_api/getMultipleAccounts.json","openapi/solana_node_api/getSlot.json","openapi/solana_node_api/getBlockHeight.json","openapi/solana_node_api/getTransaction.json","openapi/solana_node_api/getBlocksWithLimit.json","openapi/ronin_node_api/eth_getBlockByNumber.json","openapi/ronin_node_api/eth_getTransactionReceipt.json","openapi/ronin_node_api/eth_getStorageAt.json","openapi/ronin_node_api/eth_getTransactionByBlockNumberAndIndex.json","openapi/ronin_node_api/eth_getBlockTransactionCountByHash.json","openapi/ronin_node_api/eth_getBalance.json","openapi/ronin_node_api/net_peerCount.json","openapi/ronin_node_api/eth_gasPrice.json","openapi/ronin_node_api/eth_blockNumber.json","openapi/ronin_node_api/net_listening.json","openapi/ronin_node_api/eth_newBlockFilter.json","openapi/ronin_node_api/eth_getFilterChanges.json","openapi/ronin_node_api/debug_traceTransaction.json","openapi/ronin_node_api/eth_estimateGas.json","openapi/ronin_node_api/eth_getTransactionCount.json","openapi/ronin_node_api/debug_traceCall.json","openapi/ronin_node_api/eth_getTransactionByHash.json","openapi/ronin_node_api/eth_syncing.json","openapi/ronin_node_api/debug_traceBlockByHash.json","openapi/ronin_node_api/eth_getBlockByHash.json","openapi/ronin_node_api/eth_call.json","openapi/ronin_node_api/eth_chainId.json","openapi/ronin_node_api/eth_getBlockTransactionCountByNumber.json","openapi/ronin_node_api/eth_uninstallFilter.json","openapi/ronin_node_api/eth_getCode.json","openapi/ronin_node_api/eth_maxPriorityFeePerGas.json","openapi/ronin_node_api/web3_clientVersion.json","openapi/ronin_node_api/eth_getTransactionByBlockHashAndIndex.json","openapi/ronin_node_api/eth_newFilter.json","openapi/ronin_node_api/eth_getLogs.json","openapi/ronin_node_api/debug_traceBlockByNumber.json","openapi/ronin_node_api/eth_sendRawTransaction.json","openapi/gnosis_node_api/transaction_info/eth_getTransactionReceipt.json","openapi/gnosis_node_api/transaction_info/eth_getTransactionByBlockNumberAndIndex.json","openapi/gnosis_node_api/transaction_info/eth_getTransactionByHash.json","openapi/gnosis_node_api/transaction_info/eth_newPendingTransactionFilter.json","openapi/gnosis_node_api/transaction_info/eth_getTransactionByBlockHashAndIndex.json","openapi/gnosis_node_api/chain_info/eth_syncing.json","openapi/gnosis_node_api/chain_info/eth_chainId.json","openapi/gnosis_node_api/gas_data/eth_gasPrice.json","openapi/gnosis_node_api/gas_data/eth_estimateGas.json","openapi/gnosis_node_api/filter_handling/eth_getFilterChanges.json","openapi/gnosis_node_api/filter_handling/eth_uninstallFilter.json","openapi/gnosis_node_api/client_info/net_peerCount.json","openapi/gnosis_node_api/client_info/net_listening.json","openapi/gnosis_node_api/client_info/web3_clientVersion.json","openapi/gnosis_node_api/blocks_info/eth_getBlockByNumber.json","openapi/gnosis_node_api/blocks_info/eth_getBlockTransactionCountByHash.json","openapi/gnosis_node_api/blocks_info/eth_blockNumber.json","openapi/gnosis_node_api/blocks_info/eth_newBlockFilter.json","openapi/gnosis_node_api/blocks_info/eth_getBlockByHash.json","openapi/gnosis_node_api/blocks_info/eth_getBlockTransactionCountByNumber.json","openapi/gnosis_node_api/accounts_info/eth_getStorageAt.json","openapi/gnosis_node_api/accounts_info/eth_getBalance.json","openapi/gnosis_node_api/accounts_info/eth_getTransactionCount.json","openapi/gnosis_node_api/accounts_info/eth_getCode.json","openapi/gnosis_node_api/logs_and_events/eth_newFilter.json","openapi/gnosis_node_api/logs_and_events/eth_getLogs.json","openapi/gnosis_node_api/execute_transactions/eth_call.json","openapi/gnosis_node_api/execute_transactions/eth_sendRawTransaction.json","openapi/cronos_node_api/eth_getBlockByNumber.json","openapi/cronos_node_api/eth_getTransactionReceipt.json","openapi/cronos_node_api/eth_getStorageAt.json","openapi/cronos_node_api/eth_getTransactionByBlockNumberAndIndex.json","openapi/cronos_node_api/eth_getBlockTransactionCountByHash.json","openapi/cronos_node_api/eth_getBalance.json","openapi/cronos_node_api/net_peerCount.json","openapi/cronos_node_api/eth_gasPrice.json","openapi/cronos_node_api/eth_blockNumber.json","openapi/cronos_node_api/net_listening.json","openapi/cronos_node_api/eth_newBlockFilter.json","openapi/cronos_node_api/eth_getFilterChanges.json","openapi/cronos_node_api/eth_estimateGas.json","openapi/cronos_node_api/eth_getTransactionCount.json","openapi/cronos_node_api/eth_getTransactionByHash.json","openapi/cronos_node_api/eth_newPendingTransactionFilter.json","openapi/cronos_node_api/eth_syncing.json","openapi/cronos_node_api/eth_getBlockByHash.json","openapi/cronos_node_api/eth_call.json","openapi/cronos_node_api/eth_chainId.json","openapi/cronos_node_api/eth_getBlockTransactionCountByNumber.json","openapi/cronos_node_api/eth_uninstallFilter.json","openapi/cronos_node_api/eth_getCode.json","openapi/cronos_node_api/eth_maxPriorityFeePerGas.json","openapi/cronos_node_api/web3_clientVersion.json","openapi/cronos_node_api/eth_getTransactionByBlockHashAndIndex.json","openapi/cronos_node_api/eth_newFilter.json","openapi/cronos_node_api/eth_getLogs.json","openapi/cronos_node_api/eth_getProof.json","openapi/cronos_node_api/eth_sendRawTransaction.json","openapi/fantom_node_api/eth_getBlockByNumber.json","openapi/fantom_node_api/eth_getTransactionReceipt.json","openapi/fantom_node_api/eth_getStorageAt.json","openapi/fantom_node_api/eth_getTransactionByBlockNumberAndIndex.json","openapi/fantom_node_api/eth_getBlockTransactionCountByHash.json","openapi/fantom_node_api/eth_getBalance.json","openapi/fantom_node_api/net_peerCount.json","openapi/fantom_node_api/eth_gasPrice.json","openapi/fantom_node_api/eth_blockNumber.json","openapi/fantom_node_api/net_listening.json","openapi/fantom_node_api/eth_newBlockFilter.json","openapi/fantom_node_api/eth_getFilterChanges.json","openapi/fantom_node_api/eth_estimateGas.json","openapi/fantom_node_api/eth_getTransactionCount.json","openapi/fantom_node_api/eth_getTransactionByHash.json","openapi/fantom_node_api/eth_newPendingTransactionFilter.json","openapi/fantom_node_api/eth_syncing.json","openapi/fantom_node_api/eth_getBlockByHash.json","openapi/fantom_node_api/eth_call.json","openapi/fantom_node_api/eth_chainId.json","openapi/fantom_node_api/eth_getBlockTransactionCountByNumber.json","openapi/fantom_node_api/eth_uninstallFilter.json","openapi/fantom_node_api/eth_getCode.json","openapi/fantom_node_api/eth_maxPriorityFeePerGas.json","openapi/fantom_node_api/web3_clientVersion.json","openapi/fantom_node_api/eth_getTransactionByBlockHashAndIndex.json","openapi/fantom_node_api/eth_newFilter.json","openapi/fantom_node_api/eth_getLogs.json","openapi/fantom_node_api/eth_getProof.json","openapi/fantom_node_api/eth_sendRawTransaction.json","openapi/bitcoin_node_api/prioritisetransaction.json","openapi/bitcoin_node_api/getblockfilter.json","openapi/bitcoin_node_api/getrawtransaction.json","openapi/bitcoin_node_api/getchaintxstats.json","openapi/bitcoin_node_api/getnetworkhashps.json","openapi/bitcoin_node_api/decodescript.json","openapi/bitcoin_node_api/getnettotals.json","openapi/bitcoin_node_api/getmininginfo.json","openapi/bitcoin_node_api/getnodeaddresses.json","openapi/bitcoin_node_api/verifychain.json","openapi/bitcoin_node_api/getmempooldescendants.json","openapi/bitcoin_node_api/getblockchaininfo.json","openapi/bitcoin_node_api/getblockheader.json","openapi/bitcoin_node_api/decoderawtransaction.json","openapi/bitcoin_node_api/getmempoolentry.json","openapi/bitcoin_node_api/getpeerinfo.json","openapi/bitcoin_node_api/getrpcinfo.json","openapi/bitcoin_node_api/getmempoolancestors.json","openapi/bitcoin_node_api/preciousblock.json","openapi/bitcoin_node_api/validateaddress.json","openapi/bitcoin_node_api/getbestblockhash.json","openapi/bitcoin_node_api/getmempoolinfo.json","openapi/bitcoin_node_api/gettxoutproof.json","openapi/bitcoin_node_api/getmemoryinfo.json","openapi/bitcoin_node_api/getblocktemplate.json","openapi/bitcoin_node_api/getblock.json","openapi/bitcoin_node_api/getblockstats.json","openapi/bitcoin_node_api/gettxout.json","openapi/bitcoin_node_api/getchaintips.json","openapi/bitcoin_node_api/getblockhash.json","openapi/bitcoin_node_api/getdifficulty.json","openapi/bitcoin_node_api/verifytxoutproof.json","openapi/bitcoin_node_api/getconnectioncount.json","openapi/bitcoin_node_api/getrawmempool.json","openapi/bitcoin_node_api/uptime.json","openapi/bitcoin_node_api/getnetworkinfo.json","openapi/bitcoin_node_api/estimatesmartfee.json","openapi/bitcoin_node_api/gettxoutsetinfo.json","openapi/starknet_node_api/starknet_getStorageAt.json","openapi/starknet_node_api/starknet_getTransactionByHash.json","openapi/starknet_node_api/starknet_simulateTransactions.json","openapi/starknet_node_api/starknet_estimateFee.json","openapi/starknet_node_api/starknet_getClassAt.json","openapi/starknet_node_api/starknet_estimateMessageFee.json","openapi/starknet_node_api/starknet_call.json","openapi/starknet_node_api/starknet_traceBlockTransactions.json","openapi/starknet_node_api/starknet_getTransactionByBlockIdAndIndex.json","openapi/starknet_node_api/starknet_getClassHashAt.json","openapi/starknet_node_api/starknet_getNonce.json","openapi/faucet_api/transaction_history.json","openapi/faucet_api/get_tokens.json","openapi/plasma_node_api/accounts_info/eth_getBalance.json","openapi/plasma_node_api/accounts_info/eth_getCode.json","openapi/plasma_node_api/accounts_info/eth_getStorageAt.json","openapi/plasma_node_api/accounts_info/eth_getTransactionCount.json","openapi/plasma_node_api/accounts_info/eth_getProof.json","openapi/plasma_node_api/accounts_info/eth_getAccount.json","openapi/plasma_node_api/blocks_info/eth_blockNumber.json","openapi/plasma_node_api/blocks_info/eth_getBlockByNumber.json","openapi/plasma_node_api/blocks_info/eth_getBlockByHash.json","openapi/plasma_node_api/blocks_info/eth_getBlockTransactionCountByNumber.json","openapi/plasma_node_api/blocks_info/eth_getBlockTransactionCountByHash.json","openapi/plasma_node_api/blocks_info/eth_getBlockReceipts.json","openapi/plasma_node_api/blocks_info/eth_getUncleCountByBlockNumber.json","openapi/plasma_node_api/blocks_info/eth_getUncleCountByBlockHash.json","openapi/plasma_node_api/blocks_info/eth_getUncleByBlockNumberAndIndex.json","openapi/plasma_node_api/blocks_info/eth_getUncleByBlockHashAndIndex.json","openapi/plasma_node_api/blocks_info/eth_getHeaderByNumber.json","openapi/plasma_node_api/blocks_info/eth_getHeaderByHash.json","openapi/plasma_node_api/transaction_info/eth_getTransactionByHash.json","openapi/plasma_node_api/transaction_info/eth_getTransactionReceipt.json","openapi/plasma_node_api/transaction_info/eth_getTransactionByBlockNumberAndIndex.json","openapi/plasma_node_api/transaction_info/eth_getTransactionByBlockHashAndIndex.json","openapi/plasma_node_api/transaction_info/eth_getRawTransactionByHash.json","openapi/plasma_node_api/transaction_info/eth_getRawTransactionByBlockNumberAndIndex.json","openapi/plasma_node_api/transaction_info/eth_getRawTransactionByBlockHashAndIndex.json","openapi/plasma_node_api/transaction_info/eth_getTransactionBySenderAndNonce.json","openapi/plasma_node_api/execute_transactions/eth_call.json","openapi/plasma_node_api/execute_transactions/eth_estimateGas.json","openapi/plasma_node_api/execute_transactions/eth_createAccessList.json","openapi/plasma_node_api/execute_transactions/eth_simulateV1.json","openapi/plasma_node_api/gas_data/eth_gasPrice.json","openapi/plasma_node_api/gas_data/eth_maxPriorityFeePerGas.json","openapi/plasma_node_api/gas_data/eth_feeHistory.json","openapi/plasma_node_api/gas_data/eth_blobBaseFee.json","openapi/plasma_node_api/chain_info/eth_chainId.json","openapi/plasma_node_api/chain_info/eth_syncing.json","openapi/plasma_node_api/chain_info/eth_protocolVersion.json","openapi/plasma_node_api/chain_info/eth_accounts.json","openapi/plasma_node_api/chain_info/eth_hashrate.json","openapi/plasma_node_api/filter_handling/eth_newFilter.json","openapi/plasma_node_api/filter_handling/eth_newBlockFilter.json","openapi/plasma_node_api/filter_handling/eth_newPendingTransactionFilter.json","openapi/plasma_node_api/filter_handling/eth_uninstallFilter.json","openapi/plasma_node_api/logs_and_events/eth_getLogs.json","openapi/plasma_node_api/client_info/web3_clientVersion.json","openapi/plasma_node_api/client_info/web3_sha3.json","openapi/plasma_node_api/client_info/net_version.json","openapi/plasma_node_api/client_info/net_listening.json","openapi/plasma_node_api/client_info/net_peerCount.json","openapi/plasma_node_api/debug_and_trace/debug_getRawHeader.json","openapi/plasma_node_api/debug_and_trace/debug_getRawBlock.json","openapi/plasma_node_api/debug_and_trace/debug_getRawTransaction.json","openapi/plasma_node_api/debug_and_trace/debug_getRawReceipts.json","openapi/plasma_node_api/debug_and_trace/debug_traceCall.json","openapi/plasma_node_api/debug_and_trace/trace_call.json","openapi/plasma_node_api/debug_and_trace/trace_callMany.json","openapi/plasma_node_api/debug_and_trace/trace_replayBlockTransactions.json","openapi/plasma_node_api/debug_and_trace/trace_block.json","openapi/plasma_node_api/debug_and_trace/trace_get.json"]},"appearance":{"default":"light"},"background":{"decoration":"gradient","color":{"dark":"#000020"}},"navbar":{"links":[],"primary":{"type":"button","label":"Start for free","href":"https://console.chainstack.com/user/account/create"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/chainstack","x":"https://x.com/ChainstackHQ","discord":"https://discord.gg/Cymtg2f7pX","telegram":"https://t.me/chainstack","facebook":"https://www.facebook.com/chainstack","youtube":"https://www.youtube.com/c/Chainstack"},"links":[{"header":"Platform","items":[{"label":"Solution","href":"https://chainstack.com/solution"},{"label":"Pricing","href":"https://chainstack.com/pricing"},{"label":"Enterprise","href":"https://chainstack.com/enterprise"},{"label":"Customers","href":"https://chainstack.com/customers"},{"label":"Marketplace","href":"https://chainstack.com/marketplace"},{"label":"Hosting","href":"https://chainstack.com/hosting"},{"label":"Chainstack Cloud","href":"https://chainstack.com/chainstack-cloud"}]},{"header":"Developers","items":[{"label":"Login","href":"https://console.chainstack.com/user/account"},{"label":"Sign up","href":"https://console.chainstack.com/user/account"},{"label":"Faucets","href":"https://chainstack.com/faucets"},{"label":"Labs","href":"https://chainstack.com/labs"},{"label":"Status","href":"https://status.chainstack.com/"}]},{"header":"Company","items":[{"label":"About us","href":"https://chainstack.com/about"},{"label":"Contact us","href":"https://chainstack.com/contact"},{"label":"Careers","href":"https://chainstack.bamboohr.com/jobs"},{"label":"Ambassadors","href":"https://chainstack.com/chainstack-ambassadors-program"},{"label":"Labs","href":"https://chainstack.com/labs"},{"label":"Security","href":"https://chainstack.com/security"},{"label":"SLA","href":"https://chainstack.com/enterprise-support-sla"}]},{"header":"Support","items":[{"label":"Help center","href":"https://support.chainstack.com/hc/en-us"},{"label":"Developer portal","href":"https://docs.chainstack.com/"},{"label":"Terms of service","href":"https://chainstack.com/tos"},{"label":"Privacy policy","href":"https://chainstack.com/privacy"}]}]},"seo":{"metatags":{"og:site_name":"Chainstack Developer Portal"}},"fonts":{"heading":{"family":"Poppins"},"body":{"family":"Inter"}},"styling":{"codeblocks":"system","latex":true},"integrations":{"gtm":{"tagId":"GTM-WMRDXP6"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","grok","mcp","cursor","vscode"],"display":"header"},"metadata":{"timestamp":true},"navigation":{"global":{"anchors":[{"anchor":"MCP","icon":"plug","href":"/docs/chainstack-mcp-server"},{"anchor":"llms-full.txt","icon":"brain","href":"https://docs.chainstack.com/llms-full.txt"},{"anchor":"Status","icon":"signal","href":"https://status.chainstack.com/"},{"anchor":"Discord","icon":"discord","href":"https://discord.gg/Cymtg2f7pX"},{"anchor":"Telegram","icon":"telegram","href":"https://t.me/chainstack"},{"anchor":"Blog","icon":"newspaper","href":"https://chainstack.com/blog/"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"chainstack","hasAudioNarration":false,"actualSubdomain":"chainstack","customDomains":["docs.chainstack.com"],"gitSource":{"type":"github","owner":"chainstack","repo":"dev-portal","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae43f9f7819739ec3cae692","collectionId":"179e20c9-d088-40a6-99a4-1da349106fa9","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae43f9f7819739ec3cae692"},"feedback":{"edits":true,"thumbs":true,"issues":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae43f9f7819739ec3cae692","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"Cloud","count":2171},{"language":"default","tag":"API","count":1571},{"language":"default","tag":"Node APIs","count":1522},{"language":"default","tag":"Guides","count":392},{"language":"default","tag":"Release notes","count":259},{"language":"default","tag":"Web3 [de]coded","count":229},{"language":"default","tag":"Hyperliquid node API","count":215},{"language":"default","tag":"TRON node API","count":155},{"language":"default","tag":"Protocols","count":113},{"language":"default","tag":"Arc node API","count":87}],"searchSettings":{"maxResults":50}},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"docs/bsc-tutorial-bep-1155-contract-with-truffle-and-openzeppelin","slug":"/docs/bsc-tutorial-bep-1155-contract-with-truffle-and-openzeppelin","pageMetadata":{"title":"BNB Smart Chain: BEP-1155 with Truffle \u0026 OpenZeppelin","description":"Learn to create BEP-1155 multi-token contracts with Truffle and OpenZeppelin on BNB Smart Chain. Deploy fungible and non-fungible tokens using Chainstack nodes.","href":"/docs/bsc-tutorial-bep-1155-contract-with-truffle-and-openzeppelin"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Learn to create BEP-1155 multi-token contracts with Truffle and OpenZeppelin on BNB Smart Chain. Deploy fungible and non-fungible tokens using Chainstack nodes.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Card,CardGroup,CodeBlock,CodeGroup,Heading,Icon,Tooltip}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Icon)_missingMdxReference(`Icon`,true);if(!Tooltip)_missingMdxReference(`Tooltip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`TLDR:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`You’ll create a BEP-1155 contract combining fungible and non-fungible tokens in one deployment.`}),`\n`,_jsx(_components.li,{children:`You’ll rely on OpenZeppelin libraries and Truffle to compile, deploy, and verify your tokens on BNB Smart Chain testnet via Chainstack.`}),`\n`,_jsx(_components.li,{children:`You’ll flatten your code for a smooth verification on BscScan.`}),`\n`,_jsx(_components.li,{children:`By the end, you’ll have fungible tokens (0) and NFT tokens (1) all in a single smart contract.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`main-article`,children:`Main article`}),`\n`,_jsx(_components.p,{children:`BEP-1155 is the multi-token standard for smart contracts that combines the fungibility of BEP-20 and the non-fungibility of BEP-721 in one contract.`}),`\n`,_jsx(_components.p,{children:`With a single BEP-1155 contract, you can deploy an ecosystem that has both fungible tokens (currency) and non-fungible tokens (NFTs).`}),`\n`,_jsx(_components.p,{children:`In this tutorial, you will:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Create a BEP-1155 contract that has a supply of fungible tokens and one non-fungible token.`}),`\n`,_jsx(_components.li,{children:`Deploy the contract on the BNB Smart Chain testnet through a node deployed with Chainstack.`}),`\n`,_jsx(_components.li,{children:`Interact with the deployed contract.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`prerequisites`,children:`Prerequisites`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`https://console.chainstack.com/`,children:`Chainstack account`}),` to deploy a `,_jsx(_components.a,{href:`https://chainstack.com/build-better-with-bnb-smart-chain/`,children:`reliable BNB Smart Chain RPC endpoint`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`https://trufflesuite.com/`,children:`Truffle Suite`}),` to create and deploy contracts.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`https://docs.openzeppelin.com/contracts/4.x/`,children:`OpenZeppelin Contracts`}),` to use the audited `,_jsx(_components.a,{href:`https://docs.openzeppelin.com/contracts/4.x/erc1155`,children:`ERC-1155 libraries`}),` to create your BEP-1155 contract.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`To get from zero to a deployed BEP-1155 contract on the BNB Smart Chain testnet, do the following:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`With Chainstack, create a `,_jsx(Tooltip,{tip:`public chain project- a project to join public networks`,children:`public chain project`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`With Chainstack, join the BNB Smart Chain testnet.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`With Chainstack, access your BNB Smart Chain node credentials.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`With OpenZeppelin, create a BEP-1155 contract.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`With Truffle, compile and deploy the contract through your BNB Smart Chain node.`}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`step-by-step`,children:`Step-by-step`}),`\n`,_jsx(Heading,{level:`3`,id:`create-a-public-chain-project`,children:`Create a public chain project`}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/docs/manage-your-project#create-a-project`,children:`Create a project`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`join-the-bnb-smart-chain-testnet`,children:`Join the BNB Smart Chain testnet`}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/docs/manage-your-networks`,children:`Join a public network`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`get-your-bnb-smart-chain-node-access-and-credentials`,children:`Get your BNB Smart Chain node access and credentials`}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/docs/manage-your-node#view-node-access-and-credentials`,children:`View node access and credentials`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`install-openzeppelin-contracts`,children:`Install OpenZeppelin Contracts`}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`https://docs.openzeppelin.com/contracts/4.x/`,children:`OpenZeppelin Contracts`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`install-truffle-suite`,children:`Install Truffle Suite`}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`https://trufflesuite.com/docs/truffle/how-to/install/`,children:`Truffle Suite: Installation`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`create-the-contract`,children:`Create the contract`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`In your contract directory, initialize Truffle:`}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`Shell`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`truffle`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` init`})]}),`\n`]})})})}),`\n`,_jsx(_components.p,{children:`This will generate the Truffle boilerplate structure:`}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`Shell`,numberOfLines:`8`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`├──`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` contracts`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`│`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` └──`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` .gitkeep`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`├──`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` migrations`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`│`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` └──`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` .gitkeep`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`├──`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` test`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`│`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` └──`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` .gitkeep`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`└──`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` truffle-config.js`})]}),`\n`]})})})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Go to the `,_jsx(_components.code,{children:`contracts`}),` directory. In the directory, create your BEP-1155 contract: `,_jsx(_components.code,{children:`BNBSmartChain1155.sol`}),`.`]}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`solidity`,numberOfLines:`14`,language:`solidity`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`solidity`,children:_jsxs(_components.code,{language:`solidity`,numberOfLines:`14`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`//SPDX-License-Identifier: MIT`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`pragma`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` solidity`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` ^0.8`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`contract`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` BNBSmartChain1155`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` is`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` ERC1155`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` uint256`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` public`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` constant`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` FUNGIBLE `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` uint256`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` public`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` constant`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` NON_FUNGIBLE `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` constructor`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() `}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`ERC1155`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(\"JSON_URI\") {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` _mint`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`msg.sender`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, FUNGIBLE, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`100`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` _mint`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`msg.sender`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, NON_FUNGIBLE, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),`\n`,_jsx(_components.p,{children:`The contract implementation is the following:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`The contract uses OpenZeppelin audited `,_jsx(_components.a,{href:`https://docs.openzeppelin.com/contracts/4.x/erc1155`,children:`ERC-1155 contract templates`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`The contract creates two tokens: 100 fungible units of the currency called `,_jsx(_components.code,{children:`FUNGIBLE`}),` and 1 non-fungible unit called `,_jsx(_components.code,{children:`NON-FUNGIBLE`}),`. In the BEP-1155 standard, setting a token issuance to `,_jsx(_components.code,{children:`1`}),` makes it non-fungible.`]}),`\n`,_jsxs(_components.li,{children:[`The contract also has `,_jsx(_components.code,{children:`JSON_URI`}),` which is a locator for the metadata of your tokens hosted externally. For example, `,_jsx(_components.code,{children:`\u003chttps://token-cdn-domain/{id}.json>`}),`. See `,_jsx(_components.a,{href:`https://github.com/ethereum/eips/issues/1155`,children:`EIP-1155`}),` for details.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Create `,_jsx(_components.code,{children:`2_deploy_contracts.js`}),` in the `,_jsx(_components.code,{children:`migrations`}),` directory.`]}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`JavaScript`,numberOfLines:`4`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`module`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`exports`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`deployer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`var`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` BNBSmartChain1155`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` artifacts`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`require`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"./BNBSmartChain1155.sol\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` deployer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`deploy`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`BNBSmartChain1155`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`};`})}),`\n`]})})})}),`\n`,_jsx(_components.p,{children:`This will create the contract deployment instructions for Truffle.`}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`compile-and-deploy-the-contract`,children:`Compile and deploy the contract`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Install `,_jsx(_components.code,{children:`HDWalletProvider`}),`.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`https://github.com/trufflesuite/truffle/tree/develop/packages/hdwallet-provider`,children:`HDWalletProvider`}),` is Truffle’s separate npm package used to sign transactions.`]}),`\n`,_jsx(_components.p,{children:`Run:`}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`Shell`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @truffle/hdwallet-provider`})]}),`\n`]})})})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Edit `,_jsx(_components.code,{children:`truffle-config.js`}),` to add:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:_jsx(_components.code,{children:`HDWalletProvider`})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Your BNB Smart Chain node access and credentials`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Your BNB Smart Chain account that you will use to deploy the contract`}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`JavaScript`,numberOfLines:`20`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`20`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` HDWalletProvider`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` require`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"@truffle/hdwallet-provider\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` private_key`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'PRIVATE_KEY'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`module`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`exports`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` networks:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` testnet:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` provider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` () `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` HDWalletProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`private_key`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"YOUR_CHAINSTACK_ENDPOINT\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` network_id:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 97`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` confirmations:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 3`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` timeoutBlocks:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 200`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` skipDryRun:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` compilers:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` solc:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` version:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"0.8.2\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`};`})}),`\n`]})})})}),`\n`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`where`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`testnet`}),` — any network name that you will pass to the `,_jsx(_components.code,{children:`truffle migrate --network`}),` command.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`HDWalletProvider`}),` — Truffle’s custom provider to sign transactions.`]}),`\n`,_jsxs(_components.li,{children:[`PRIVATE_KEY — the private key of your BNB Smart Chain account that will deploy the contract. The account must have enough BNB funds to run the deployment. See also `,_jsx(_components.a,{href:`https://faucet.chainstack.com/bnb-testnet-faucet`,children:`BNB Smart Chain Faucet`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`YOUR_CHAINSTACK_ENDPOINT — your Chainstack node HTTPS endpoint. See also `,_jsx(_components.a,{href:`/docs/manage-your-node#view-node-access-and-credentials`,children:`View node access and credentials`}),` and `,_jsx(_components.a,{href:`/docs/bsc-tooling`,children:`BNB Smart Chain tooling`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`network_id`}),` — the network ID of the BNB Smart Chain network: mainnet is `,_jsx(_components.code,{children:`56`}),`, testnet is `,_jsx(_components.code,{children:`97`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`solc`}),` — the Solidity compiler version that Truffle must use. OpenZeppelin contracts have a higher version Solidity compiler requirement than the default Truffle installation, hence you must provide a specific compiler version.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Run:`}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`Shell`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`truffle`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` migrate`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --network`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` testnet`})]}),`\n`]})})})}),`\n`,_jsxs(_components.p,{children:[`This will engage `,_jsx(_components.code,{children:`2_deploy_contracts.js`}),` and deploy the contract to the BNB Smart Chain testnet as specified in `,_jsx(_components.code,{children:`truffle-config.js`}),`.`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`interact-with-the-contract`,children:`Interact with the contract`}),`\n`,_jsxs(_components.p,{children:[`Once your contract is deployed, you can view it online at `,_jsx(_components.a,{href:`https://testnet.bscscan.com/`,children:`BscScan testnet`}),`.`]}),`\n`,_jsx(_components.p,{children:`Network explorers, including BscScan, do not display the NFT standards by default, so you will have to perform additional steps to check the balance of your issued tokens. Namely, you must verify the contract on BscScan to interact with it online.`}),`\n`,_jsx(Heading,{level:`3`,id:`flatten-your-contract-code`,children:`Flatten your contract code`}),`\n`,_jsxs(_components.p,{children:[`Since your BEP-1155 contract uses imported OpenZeppelin libraries, you must put all the imports into one `,_jsx(_components.code,{children:`.sol`}),` file to make BscScan be able to verify it.`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Install `,_jsx(_components.a,{href:`https://www.npmjs.com/package/truffle-flattener`,children:`Truffle Flattener`}),`.`]}),`\n`,_jsx(_components.p,{children:`Run:`}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`Shell`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` truffle-flattener`})]}),`\n`]})})})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Flatten the contract.`}),`\n`,_jsxs(_components.p,{children:[`In the `,_jsx(_components.code,{children:`contracts`}),` directory, run:`]}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`Shell`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npx`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` truffle-flattener`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` BNBSmartChain1155.sol`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` FlatBNBSmartChain1155.sol`})]}),`\n`]})})})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Clean up the licensing information.`}),`\n`,_jsx(_components.p,{children:`The flattened contract will have the same licensing note imported from each of the files. Multiple licensing notes in one file break the BscScan verification, so you have to leave one licensing note for the entirety of the flattened contract.`}),`\n`,_jsxs(_components.p,{children:[`The easiest way to clean up is to search for the `,_jsx(_components.code,{children:`SPDX`}),` mentions in the file and remove all of them except for the very first one.`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`verify-the-deployed-contract-on-bscscan`,children:`Verify the deployed contract on BscScan`}),`\n`,_jsx(_components.p,{children:`At this point, you have your flattened and cleaned-up contract ready for the BscScan verification.`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Go to `,_jsx(_components.a,{href:`https://testnet.bscscan.com/`,children:`BscScan testnet`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Find your deployed contract. The address of your contract should have been printed by Truffle at the end of the deployment in the `,_jsx(_components.code,{children:`contract address`}),` field.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`On the contract page on BscScan, click `,_jsx(_components.strong,{children:`Contract`}),` > `,_jsx(_components.strong,{children:`Verify and Publish`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`In `,_jsx(_components.strong,{children:`Compiler Type`}),`, select `,_jsx(_components.strong,{children:`Solidity (Single file)`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`In `,_jsx(_components.strong,{children:`Compiler Version`}),`, select `,_jsx(_components.strong,{children:`v0.8.2`}),`. This is the version this tutorial used to compile the contract.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Continue`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Keep the `,_jsx(_components.strong,{children:`Optimization`}),` option set to `,_jsx(_components.strong,{children:`No`}),` as Truffle does not use optimization by default.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Paste the entirety of your flattened `,_jsx(_components.code,{children:`.sol`}),` contract in the `,_jsx(_components.strong,{children:`Enter the Solidity Contract Code below`}),` field.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Verify and Publish`}),`.`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`BscScan will take a few seconds to compile your contract, verify, and publish it.`}),`\n`,_jsx(Heading,{level:`3`,id:`check-the-balance`,children:`Check the balance`}),`\n`,_jsx(_components.p,{children:`Now that your BEP-1155 contract is verified, you can check your balance of the issued tokens on BscScan.`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`On BscScan, on your contract, click `,_jsx(_components.strong,{children:`Contract`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Read Contract`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Scroll to the `,_jsx(_components.strong,{children:`balanceOf`}),` field.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`account`}),` field, provide the address of the account you used to deploy the contract.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`id`}),` field, put `,_jsx(_components.code,{children:`0`}),` to check your fungible balance and put `,_jsx(_components.code,{children:`1`}),` to check your non-fungible balance.`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`conclusion`,children:`Conclusion`}),`\n`,_jsx(_components.p,{children:`This tutorial guided you through the basics of creating and deploying a contract in the BEP-1155 multi-token standard. The BEP-1155 is useful in that it can deploy an ecosystem of currencies and NFTs in one go—you can add however many fungible and non-fungible tokens to your contract.`}),`\n`,_jsx(_components.p,{children:`You also verified your deployed contract online and interacted with it.`}),`\n`,_jsx(_components.p,{children:`This tutorial uses testnet, however, the exact same instructions and sequence will work on the mainnet as well.`}),`\n`,_jsx(Heading,{level:`3`,id:`about-the-author`,children:`About the author`}),`\n`,_jsx(CardGroup,{children:_jsxs(Card,{title:`Ake`,children:[_jsx(`img`,{src:`https://mintcdn.com/chainstack/UN3rP7zhB69idvnC/images/docs/profile_images/1719912994363326464/8_Bi4fdM_400x400.jpg?fit=max\u0026auto=format\u0026n=UN3rP7zhB69idvnC\u0026q=85\u0026s=792a24ab1b4682406fa589c0ecd88e5d`,alt:`Ake`,style:{width:`80px`,height:`80px`,borderRadius:`50%`,objectFit:`cover`,display:`block`,margin:`0 auto`},noZoom:true,\"data-og-width\":`400`,width:`400`,\"data-og-height\":`400`,height:`400`,\"data-path\":`images/docs/profile_images/1719912994363326464/8_Bi4fdM_400x400.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/chainstack/UN3rP7zhB69idvnC/images/docs/profile_images/1719912994363326464/8_Bi4fdM_400x400.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=UN3rP7zhB69idvnC\u0026q=85\u0026s=796f4bd80a6649348dd9d3f8e2632a91 280w, https://mintcdn.com/chainstack/UN3rP7zhB69idvnC/images/docs/profile_images/1719912994363326464/8_Bi4fdM_400x400.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=UN3rP7zhB69idvnC\u0026q=85\u0026s=b952d5110b2ce65f240256fffd665dfc 560w, https://mintcdn.com/chainstack/UN3rP7zhB69idvnC/images/docs/profile_images/1719912994363326464/8_Bi4fdM_400x400.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=UN3rP7zhB69idvnC\u0026q=85\u0026s=5cb20cbb33e700259c5bdf4c979760bd 840w, https://mintcdn.com/chainstack/UN3rP7zhB69idvnC/images/docs/profile_images/1719912994363326464/8_Bi4fdM_400x400.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=UN3rP7zhB69idvnC\u0026q=85\u0026s=051ac247435ba6b1ecef059cd1bf611d 1100w, https://mintcdn.com/chainstack/UN3rP7zhB69idvnC/images/docs/profile_images/1719912994363326464/8_Bi4fdM_400x400.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=UN3rP7zhB69idvnC\u0026q=85\u0026s=65bc12c7d5b593fe45d94e05420a7c87 1650w, https://mintcdn.com/chainstack/UN3rP7zhB69idvnC/images/docs/profile_images/1719912994363326464/8_Bi4fdM_400x400.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=UN3rP7zhB69idvnC\u0026q=85\u0026s=a79114199a7b444ef0c63c983cb9ef73 2500w`}),_jsxs(_components.p,{children:[_jsx(Icon,{icon:`code`,iconType:`solid`}),` Director of Developer Experience @ Chainstack\n`,_jsx(`br`,{}),_jsx(Icon,{icon:`screwdriver-wrench`,iconType:`solid`}),` Talk to me all things Web3\n`,_jsx(`br`,{}),`20 years in technology | 8+ years in Web3 full time years experience`]}),_jsxs(`div`,{style:{display:`flex`,justifyContent:`center`,gap:`12px`},children:[_jsx(`a`,{href:`https://github.com/akegaviar/`,style:{textDecoration:`none`,borderBottom:`none`},children:_jsx(Icon,{icon:`github`,iconType:`brands`})}),_jsx(`a`,{href:`https://twitter.com/akegaviar`,style:{textDecoration:`none`,borderBottom:`none`},children:_jsx(Icon,{icon:`twitter`,iconType:`brands`})}),_jsx(`a`,{href:`https://www.linkedin.com/in/ake/`,style:{textDecoration:`none`,borderBottom:`none`},children:_jsx(Icon,{icon:`linkedin`,iconType:`brands`})})]})]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"BNB Smart Chain: BEP-1155 with Truffle \u0026 OpenZeppelin","description":"Learn to create BEP-1155 multi-token contracts with Truffle and OpenZeppelin on BNB Smart Chain. Deploy fungible and non-fungible tokens using Chainstack nodes.","href":"/docs/bsc-tutorial-bep-1155-contract-with-truffle-and-openzeppelin"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Main article","slug":"main-article","depth":2,"children":[]},{"title":"Prerequisites","slug":"prerequisites","depth":2,"children":[]},{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"Step-by-step","slug":"step-by-step","depth":2,"children":[{"title":"Create a public chain project","slug":"create-a-public-chain-project","depth":3,"children":[]},{"title":"Join the BNB Smart Chain testnet","slug":"join-the-bnb-smart-chain-testnet","depth":3,"children":[]},{"title":"Get your BNB Smart Chain node access and credentials","slug":"get-your-bnb-smart-chain-node-access-and-credentials","depth":3,"children":[]},{"title":"Install OpenZeppelin Contracts","slug":"install-openzeppelin-contracts","depth":3,"children":[]},{"title":"Install Truffle Suite","slug":"install-truffle-suite","depth":3,"children":[]},{"title":"Create the contract","slug":"create-the-contract","depth":3,"children":[]},{"title":"Compile and deploy the contract","slug":"compile-and-deploy-the-contract","depth":3,"children":[]},{"title":"Interact with the contract","slug":"interact-with-the-contract","depth":3,"children":[]},{"title":"Flatten your contract code","slug":"flatten-your-contract-code","depth":3,"children":[]},{"title":"Verify the deployed contract on BscScan","slug":"verify-the-deployed-contract-on-bscscan","depth":3,"children":[]},{"title":"Check the balance","slug":"check-the-balance","depth":3,"children":[]}]},{"title":"Conclusion","slug":"conclusion","depth":2,"children":[{"title":"About the author","slug":"about-the-author","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"chainstack","siteName":"Chainstack","title":"BNB Smart Chain: BEP-1155 with Truffle \u0026 OpenZeppelin - Chainstack","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-04-13T04:39:10.565Z","gitLastModified":"2026-04-13T04:34:07.000Z","originalFileLocation":"docs/bsc-tutorial-bep-1155-contract-with-truffle-and-openzeppelin.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Learn to create BEP-1155 multi-token contracts with Truffle and OpenZeppelin on BNB Smart Chain. Deploy fungible and non-fungible tokens using Chainstack nodes.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Chainstack\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/chainstack/jo9dYY4MCWk3fHQO/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/chainstack/jo9dYY4MCWk3fHQO/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/chainstack/jo9dYY4MCWk3fHQO/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/chainstack/jo9dYY4MCWk3fHQO/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/chainstack/jo9dYY4MCWk3fHQO/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/chainstack/jo9dYY4MCWk3fHQO/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/chainstack/jo9dYY4MCWk3fHQO/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/chainstack/jo9dYY4MCWk3fHQO/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/chainstack/jo9dYY4MCWk3fHQO/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"BNB Smart Chain: BEP-1155 with Truffle \u0026amp; OpenZeppelin - Chainstack\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn to create BEP-1155 multi-token contracts with Truffle and OpenZeppelin on BNB Smart Chain. Deploy fungible and non-fungible tokens using Chainstack nodes.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Chainstack Developer Portal\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.chainstack.com/docs/bsc-tutorial-bep-1155-contract-with-truffle-and-openzeppelin\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://chainstack.mintlify.app/_mintlify/api/og/v2?division=Protocols\u0026amp;title=BNB+Smart+Chain%3A+BEP-1155+with+Truffle+%26+OpenZeppelin\u0026amp;description=Learn+to+create+BEP-1155+multi-token+contracts+with+Truffle+and+OpenZeppelin+on+BNB+Smart+Chain.+Deploy+fungible+and+non-fungible+tokens+using+Chainstack+nodes.\u0026amp;theme=c53f2fdbd09e71fbd128e481\u0026amp;signature=4d43dbd283cce5dd8018f88a6b9a29f6765c80c0c1c2bb047f638f04467c95cc\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"BNB Smart Chain: BEP-1155 with Truffle \u0026amp; OpenZeppelin - Chainstack\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn to create BEP-1155 multi-token contracts with Truffle and OpenZeppelin on BNB Smart Chain. Deploy fungible and non-fungible tokens using Chainstack nodes.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://chainstack.mintlify.app/_mintlify/api/og/v2?division=Protocols\u0026amp;title=BNB+Smart+Chain%3A+BEP-1155+with+Truffle+%26+OpenZeppelin\u0026amp;description=Learn+to+create+BEP-1155+multi-token+contracts+with+Truffle+and+OpenZeppelin+on+BNB+Smart+Chain.+Deploy+fungible+and+non-fungible+tokens+using+Chainstack+nodes.\u0026amp;theme=c53f2fdbd09e71fbd128e481\u0026amp;signature=4d43dbd283cce5dd8018f88a6b9a29f6765c80c0c1c2bb047f638f04467c95cc\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/chainstack/jo9dYY4MCWk3fHQO/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Chainstack\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#007aff\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.chainstack.com/docs/bsc-tutorial-bep-1155-contract-with-truffle-and-openzeppelin\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/bsc-tutorial-bep-1155-contract-with-truffle-and-openzeppelin.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.chainstack.com/#organization\",\"name\":\"Chainstack\",\"url\":\"https://docs.chainstack.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/chainstack/4kCLdVG8vhROt3j-/logo/light.svg?fit=max\u0026auto=format\u0026n=4kCLdVG8vhROt3j-\u0026q=85\u0026s=7d2d6d754203b9b3aa553e71ac4d9991\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.chainstack.com#website\",\"name\":\"Chainstack\",\"url\":\"https://docs.chainstack.com\",\"publisher\":{\"@id\":\"https://docs.chainstack.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.chainstack.com/docs/bsc-tutorial-bep-1155-contract-with-truffle-and-openzeppelin#webpage\",\"url\":\"https://docs.chainstack.com/docs/bsc-tutorial-bep-1155-contract-with-truffle-and-openzeppelin\",\"name\":\"BNB Smart Chain: BEP-1155 with Truffle \u0026 OpenZeppelin\",\"description\":\"Learn to create BEP-1155 multi-token contracts with Truffle and OpenZeppelin on BNB Smart Chain. Deploy fungible and non-fungible tokens using Chainstack nodes.\",\"dateModified\":\"2026-04-13T04:34:07.000Z\",\"isPartOf\":{\"@id\":\"https://docs.chainstack.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.chainstack.com/docs/bsc-tutorial-bep-1155-contract-with-truffle-and-openzeppelin#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.chainstack.com/docs/bsc-tutorial-bep-1155-contract-with-truffle-and-openzeppelin#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Web3 [de]coded\",\"item\":\"https://docs.chainstack.com/docs/web3-decoded-introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Protocols\",\"item\":\"https://docs.chainstack.com/docs/protocols-tutorials\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"BNB Smart Chain: BEP-1155 with Truffle \u0026 OpenZeppelin\",\"item\":\"https://docs.chainstack.com/docs/bsc-tutorial-bep-1155-contract-with-truffle-and-openzeppelin\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.chainstack.com/docs/bsc-tutorial-bep-1155-contract-with-truffle-and-openzeppelin#article\",\"headline\":\"BNB Smart Chain: BEP-1155 with Truffle \u0026 OpenZeppelin\",\"name\":\"BNB Smart Chain: BEP-1155 with Truffle \u0026 OpenZeppelin\",\"description\":\"Learn to create BEP-1155 multi-token contracts with Truffle and OpenZeppelin on BNB Smart Chain. Deploy fungible and non-fungible tokens using Chainstack nodes.\",\"url\":\"https://docs.chainstack.com/docs/bsc-tutorial-bep-1155-contract-with-truffle-and-openzeppelin\",\"mainEntityOfPage\":{\"@id\":\"https://docs.chainstack.com/docs/bsc-tutorial-bep-1155-contract-with-truffle-and-openzeppelin#webpage\"},\"dateModified\":\"2026-04-13T04:34:07.000Z\",\"publisher\":{\"@id\":\"https://docs.chainstack.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.chainstack.com#website\"}}]}\u003c/script>","siteName":"Chainstack","nav":{"global":{"anchors":[{"anchor":"MCP","icon":"plug","href":"/docs/chainstack-mcp-server"},{"anchor":"llms-full.txt","icon":"brain","href":"https://docs.chainstack.com/llms-full.txt"},{"anchor":"Status","icon":"signal","href":"https://status.chainstack.com/"},{"anchor":"Discord","icon":"discord","href":"https://discord.gg/Cymtg2f7pX"},{"anchor":"Telegram","icon":"telegram","href":"https://t.me/chainstack"},{"anchor":"Blog","icon":"newspaper","href":"https://chainstack.com/blog/"}]},"products":[{"product":"Cloud","icon":"cloud","description":"Managed blockchain infrastructure","tabs":[{"tab":"Guides","groups":[{"group":"Platform","pages":[{"title":"Chainstack platform overview: nodes, APIs, and billing","href":"/docs/platform-introduction"},{"title":"Manage your account","href":"/docs/manage-your-account"},{"title":"Manage your organization","href":"/docs/manage-your-organization"},{"title":"Manage your billing","href":"/docs/manage-your-billing"},{"title":"Billing thresholds","href":"/docs/billing-thresholds"},{"title":"Manage your projects","href":"/docs/manage-your-project"},{"title":"Manage your networks","href":"/docs/manage-your-networks"},{"title":"Manage your nodes","href":"/docs/manage-your-node"},{"title":"Use Multichain API","href":"/docs/multichain-api"},{"title":"Statistics","href":"/docs/see-statistics"},{"title":"Node usage","href":"/docs/node-usage"},{"title":"Faucet","href":"/docs/faucets"},{"title":"RSS feeds","href":"/docs/rss-feeds"}]},{"group":"Pricing","pages":[{"title":"Chainstack pricing: plans, request units, and quotas","href":"/docs/pricing-introduction"},{"title":"Request units (RUs)","href":"/docs/request-units"},{"title":"Features availability","href":"/docs/features-availability-across-subscription-plans"},{"title":"Throughput guidelines","href":"/docs/limits"},{"title":"Requests per second (RPS) plan limits","href":"/docs/rps-plan-limits"},{"title":"Quotas","href":"/docs/quotas"}]},{"group":"Core","pages":[{"title":"Global Node","href":"/docs/global-elastic-node"},{"title":"Unlimited Node","href":"/docs/unlimited-node"},{"title":"Trader Node","href":"/docs/trader-node"},{"title":"Dedicated Node","href":"/docs/dedicated-node"},{"title":"Dedicated Node monitoring","href":"/docs/dedicated-node-monitoring"},{"title":"Hybrid hosting","href":"/docs/hybrid-hosting"}]},{"group":"Add-ons","pages":[{"title":"Chainstack add-ons: marketplace extensions for RPC nodes","href":"/docs/add-ons"},{"title":"MEV protection","href":"/docs/mev-protection"},{"title":"Optimized submission","href":"/docs/optimized-submission"},{"title":"Yellowstone gRPC Geyser plugin","href":"/docs/yellowstone-grpc-geyser-plugin"},{"title":"Unlimited Node add-on","href":"/docs/unlimited-node-add-on"}]},{"group":"Security","pages":[{"title":"Access rules","href":"/docs/access-rules"},{"title":"Authentication methods available on Chainstack","href":"/docs/authentication-methods-for-different-scenarios"}]},{"group":"Migrate to Chainstack","pages":[{"title":"Migrate to Chainstack with AI","sidebarTitle":"Migrate with AI","href":"/docs/migrate-to-chainstack-with-ai"},{"title":"Migrating from Google Cloud Blockchain Node Engine to Chainstack","sidebarTitle":"Google Blockchain Node Engine","href":"/docs/migrating-from-google-cloud-blockchain-node-engine-to-chainstack"},{"title":"Migrating from Syndica to Chainstack","sidebarTitle":"Syndica","href":"/docs/migrating-from-syndica-to-chainstack"},{"title":"Migrating from Grove to Chainstack","sidebarTitle":"Grove","href":"/docs/migrating-from-grove-to-chainstack"},{"title":"Migrate from Helius getTokenAccounts to Solana RPC","sidebarTitle":"Helius getTokenAccounts","href":"/docs/migrating-from-helius-gettokenaccounts-to-standard-solana-rpc-methods"}]},{"group":"Web3 [de]coded","pages":[{"title":"Web3 [De]Coded: tutorials, guides, and best practices","href":"/docs/web3-decoded-introduction"},{"group":"Protocols","pages":[{"title":"Protocols","sidebarTitle":"Overview","href":"/docs/protocols-tutorials"},{"title":"Ethereum: How to analyze pending blocks","href":"/docs/ethereum-how-to-analyze-pending-blocks"},{"title":"Simulate a Uniswap swap before broadcasting","href":"/docs/ethereum-simulate-a-uniswap-swap"},{"title":"Monitor an Ethereum address for incoming transactions in real time","href":"/docs/ethereum-monitor-address-transactions"},{"title":"Monitor Uniswap swaps in real time over WebSocket","href":"/docs/ethereum-monitor-uniswap-swaps-websocket"},{"title":"Blob transactions the hard way","href":"/docs/blob-transactions-the-hard-way"},{"title":"Ethereum Dencun: Rundown with examples","href":"/docs/ethereum-dencun-rundown-with-examples"},{"title":"EIP-7702: delegate an EOA and batch transactions","href":"/docs/ethereum-eip-7702-tutorial"},{"title":"Ethereum: Academic certificates with Truffle","href":"/docs/ethereum-tutorial-academic-certificates-with-truffle"},{"title":"Ethereum: Asset tokenization with Embark","href":"/docs/ethereum-tutorial-asset-tokenization-with-embark"},{"title":"Ethereum: Trust fund account with Remix","href":"/docs/ethereum-tutorial-trust-fund-account-with-remix"},{"title":"Chainlink: Estimating the price of a call","href":"/docs/chainlink-estimating-the-price-of-a-call"},{"title":"Polygon: Bridging ERC-20 from Ethereum to Polygon","href":"/docs/polygon-tutorial-bridging-erc20-from-ethereum-to-polygon"},{"title":"Polygon: Creating a Polymarket trading OpenClaw skill","description":"A Python-based OpenClaw skill that integrates Polymarket prediction markets with Claude Code via split + CLOB execution on Polygon","href":"/docs/polygon-creating-a-polymarket-trading-openclaw-skill"},{"title":"BNB Smart Chain: BEP-1155 with Truffle \u0026 OpenZeppelin","href":"/docs/bsc-tutorial-bep-1155-contract-with-truffle-and-openzeppelin"},{"title":"BNB Smart Chain: Lorentz hardfork","description":"Details on the BNB Smart Chain Lorentz hardfork activating BEP-520 for 1.5-second block intervals. Chainstack nodes are ready at activation.","href":"/docs/bnb-lorentz-hardfork"},{"title":"Base: Deploy an ERC-721 contract with Hardhat","href":"/docs/base-tutorial-deploy-an-erc-721-contract-with-hardhat"},{"title":"Base B20 token standard","href":"/docs/base-b20-token-standard"},{"title":"Base: Deploy a B20 token","href":"/docs/base-tutorial-deploy-a-b20-token"},{"title":"Base: Accept B20 payments","href":"/docs/base-accept-b20-payments"},{"title":"eth_getStorageAt vs debug_storageRangeAt on Reth","href":"/docs/using-eth_getstorageat-instead-of-debug_storagerangeat-on-reth"},{"title":"Avalanche: Aave V3 flash loan with Hardhat","href":"/docs/avalanche-tutorial-aavev3-flash-loans-with-hardhat"},{"title":"Avalanche Granite network upgrade","href":"/docs/avalanche-granite-upgrade"},{"title":"Avalanche Helicon network upgrade","href":"/docs/avalanche-helicon-upgrade"},{"title":"TON: Deploy a smart contract","href":"/docs/getting-started-with-ton-deploy-a-smart-contract"},{"title":"TON: How to develop fungible tokens (Jettons)","href":"/docs/ton-how-to-develop-fungible-tokens-jettons"},{"title":"TON: How to customize fungible tokens (Jettons)","href":"/docs/ton-how-to-customize-fungible-tokens-jettons"},{"title":"TON: How to develop non-fungible tokens (NFT)","href":"/docs/ton-how-to-develop-non-fungible-tokens"},{"title":"TON: Wallet initialization with Tonweb","href":"/docs/ton-wallet-initialization-with-tonweb"},{"title":"TON: How to interact with Jettons","href":"/docs/ton-how-to-interact-with-jettons"},{"title":"TON: Choosing v2, v3, or v4","href":"/docs/ton-choosing-v2-or-v3"},{"title":"Unichain: Collecting Uniswap v4 ETH-USDC trades","href":"/docs/unichain-collecting-uniswapv4-eth-usdc-trades"},{"title":"Arbitrum: L1 to L2 messaging smart contract","href":"/docs/arbitrum-tutorial-l1-to-l2-messaging-smart-contract"},{"title":"zkSync Era: Develop a custom paymaster contract","href":"/docs/zksync-tutorial-develop-a-custom-paymaster-contract"},{"title":"Optimism: Bridge ETH from L1 to L2 with the JS SDK","href":"/docs/optimism-tutorial-bridge-ether-from-ethereum-l1-to-optimism-l2-using-the-optimism-javascript-sdk"},{"title":"Scroll: Deploy Uniswap V3 on Scroll","href":"/docs/scroll-tutorial-deploy-the-uniswap-v3-smart-contracts-on-scroll"},{"title":"Ronin: Make a game's smart contract","href":"/docs/ronin-tutorial-making-a-game-contract"},{"title":"Ronin: on-chain meta racing game","href":"/docs/ronin-on-chain-meta-racing-game"},{"title":"Aptos: Publish a module to save and retrieve messages","href":"/docs/aptos-tutorial-publish-a-module-to-save-and-retrieve-a-message-on-aptos"},{"title":"Plasma: Network setup and configuration","href":"/docs/plasma-tutorial-network-setup-and-configuration"},{"title":"Monitor Plasma USDT flows with web3.py","href":"/docs/plasma-tutorial-monitor-usdt-flows-with-web3py"},{"title":"Plasma: RPC failover with eRPC","href":"/docs/plasma-tutorial-rpc-failover-with-erpc"},{"title":"Plasma: Bridging assets with Symbiosis","href":"/docs/plasma-tutorial-bridging-assets-with-symbiosis"},{"title":"Plasma: Bridging from HyperEVM with deBridge","href":"/docs/plasma-tutorial-bridging-from-hyperevm-with-debridge"},{"title":"Gnosis: Soulbound token with Remix and OpenZeppelin","href":"/docs/gnosis-tutorial-simple-soulbound-token-with-remix-and-openzeppelin"},{"title":"Cronos: Dutch auction smart contract with Hardhat","href":"/docs/cronos-tutorial-dutch-auction-smart-contracts-on-cronos-with-hardhat"},{"title":"Filecoin: Deploy a deal-making contract using Hardhat","href":"/docs/filecoin-tutorial-deploy-a-deal-making-contract-on-filecoin-with-hardhat"},{"title":"TRON: Energy and Bandwidth with Python \u0026 Chainstack","href":"/docs/tron-mastering-energy-bandwidth-with-python-and-chainstack"},{"title":"TRON: Polling for TRC20 transfers in Node.js","href":"/docs/tron-polling-for-trc20-transfers"},{"title":"Sonic: Swap farming for points walkthrough in Python","href":"/docs/sonic-swap-farming-for-points-walkthrough-in-python"},{"title":"Starknet: NFT contract with Nile and L1-L2 messaging","href":"/docs/starknet-tutorial-an-nft-contract-with-nile-and-l1-l2-reputation-messaging"},{"title":"Solana archive nodes: Data availability \u0026 tooling","href":"/docs/solana-archive-nodes-the-backbone-of-solanas-data-availability-and-developer-tooling"},{"title":"Ronin gaming: Overview of Axie \u0026 Pixels","href":"/docs/ronin-gaming-overview-of-axie-pixels"},{"title":"Ronin: Consensus algorithm","href":"/docs/ronin-consensus-algorithm"},{"title":"Kaia (ex. Klaytn): Contract Sizzle 100","href":"/docs/klaytn-contract-sizzle-100"},{"title":"Sui: On-chain validator analytics with pysui","href":"/docs/sui-on-chain-validator-analytics-with-pysui"},{"title":"Berachain: On-chain data quickstart with Python","href":"/docs/berachain-on-chain-data-quickstart-with-python"},{"title":"Linea: Real-time transaction activity monitor with Python","href":"/docs/linea-real-time-transaction-monitor-python"},{"title":"Mantle: Fetching token prices from Merchant Moe","href":"/docs/mantle-fetching-token-prices-from-merchant-moe"},{"title":"Zora: Real-time creator token detection and monitoring","href":"/docs/zora-creator-token-detection-tutorial"},{"title":"Polkadot: Real-time network health monitoring dashboard","href":"/docs/polkadot-network-health-monitoring"},{"title":"Celo: Build a voting dApp with Foundry and Next.js","href":"/docs/celo-build-a-simple-voting-dapp-with-foundry-nextjs-and-web3js"},{"title":"opBNB: How to listen to deposits on the opBNB bridge","href":"/docs/opbnb-how-to-listen-deposits-bridge"},{"title":"Monad: Querying the blockchain with JavaScript","href":"/docs/monad-tutorial-querying-blockchain-javascript"},{"title":"Monad: Querying the blockchain with Python","href":"/docs/monad-tutorial-querying-blockchain-python"},{"title":"Monad: Deploying and verifying smart contracts","href":"/docs/monad-tutorial-deploy-verify-smart-contracts"},{"title":"Monad: Minting and managing NFTs","href":"/docs/monad-tutorial-nft-minting-erc721"},{"title":"Monad: Monitoring events and transactions","href":"/docs/monad-tutorial-event-monitoring"},{"title":"Monad: Fetching token prices from DEXs","href":"/docs/monad-tutorial-dex-price-fetching"},{"title":"Monad: Local fork testing with Foundry","href":"/docs/monad-tutorial-local-fork-testing"},{"title":"Tempo: Building your first payment app","href":"/docs/tempo-tutorial-first-payment-app"},{"title":"Tempo: Basic DEX swap with Foundry","href":"/docs/tempo-tutorial-dex-swap-foundry"},{"title":"Elysium: Trace internal calls and HYPE transfers","href":"/docs/elysium-tutorial-trace-internal-calls"}]},{"group":"Mastering Hyperliquid","pages":[{"title":"Mastering Hyperliquid","sidebarTitle":"Overview","href":"/docs/hyperliquid-development"},{"title":"Building on Hyperliquid with the nktkas TypeScript SDK","href":"/docs/hyperliquid-typescript-sdk-nktkas"},{"title":"Hyperliquid: Bridging USDC between HyperCore and HyperEVM","href":"/docs/hyperliquid-bridging-usdc"},{"title":"Understanding Hyperliquid infrastructure and RPC nodes","href":"/docs/hyperliquid-infrastructure-faq"},{"title":"Hyperliquid: Authentication via signatures overview","href":"/docs/hyperliquid-authentication-guide"},{"title":"Hyperliquid signing overview","href":"/docs/hyperliquid-signing-overview"},{"title":"Hyperliquid: L1 action signing on HyperCore with Python SDK","href":"/docs/hyperliquid-l1-action-signing"},{"title":"Hyperliquid: User-signed actions with Python SDK","href":"/docs/hyperliquid-user-signed-actions"},{"title":"Hyperliquid: Debugging signature errors","href":"/docs/hyperliquid-debugging-signature-errors"},{"title":"Hyperliquid node configuration and system transactions","href":"/docs/hyperliquid-node-configuration"},{"title":"Hyperliquid peering","href":"/docs/hyperliquid-peering"},{"title":"Fork Hyperliquid EVM with Foundry","href":"/docs/hyperliquid-forking-evm-foundry"},{"title":"Write to HyperCore from a contract with CoreWriter","href":"/docs/hyperliquid-corewriter"},{"title":"Building a copy trading bot with spot order mirroring","href":"/docs/hyperliquid-copy-trading-websocket"},{"title":"TWAP order execution and monitoring","href":"/docs/hyperliquid-twap-orders"},{"title":"Handling order precision and market metadata","href":"/docs/hyperliquid-order-precision"},{"title":"Implementing spot-perp funding rate arbitrage","href":"/docs/hyperliquid-funding-rate-arbitrage"},{"title":"Trading HIP-4 outcome markets on Hyperliquid","href":"/docs/hyperliquid-hip4-outcome-markets-trading"}]},{"group":"Mastering Web3 LLMs and AI use","pages":[{"title":"Mastering Web3 LLMs and AI use","sidebarTitle":"Overview","href":"/docs/mastering-web3-llms-and-ai-use"},{"title":"AI trading agent: Stack","href":"/docs/ai-trading-agent-stack"},{"title":"AI trading agent: Pipeline","href":"/docs/ai-trading-agent-pipeline"},{"title":"AI trading agent: Implementation","href":"/docs/ai-trading-agent-implementation"},{"title":"AI trading agent: Stateless agent","href":"/docs/ai-trading-agent-stateless-agent"},{"title":"AI trading agent: Stateful agent","href":"/docs/ai-trading-agent-stateful-agent"},{"title":"AI trading agent: Grok 4 integration with OpenRouter","href":"/docs/ai-trading-agent-grok4-openrouter-integration"},{"title":"AI trading agent: Kimi K2 integration with OpenRouter","href":"/docs/ai-trading-agent-kimi-k2-openrouter-integration"},{"title":"AI trading agent: ERNIE 4.5 local integration with MLX-LM","href":"/docs/ai-trading-agent-ernie-mlx-local-integration"},{"title":"AI trading agent: SmolLM3 local integration with MLX-LM","href":"/docs/ai-trading-agent-smollm3-mlx-local-integration"},{"title":"AI trading agent: Fine-tuning overview","href":"/docs/ai-trading-agent-fine-tuning-overview"},{"title":"AI trading agent: GANs and synthetic data","href":"/docs/ai-trading-agent-gans-and-synthetic-data"},{"title":"AI trading agent: Fusing LoRA adapters for Ollama","href":"/docs/ai-trading-agent-fusing-llm-adapters-and-converting-to-ollama"},{"title":"AI trading agent: Reinforcement learning","href":"/docs/ai-trading-agent-reinforcement-learning"}]},{"group":"Mastering Solana","pages":[{"title":"Mastering Solana","sidebarTitle":"Overview","href":"/docs/solana-development"},{"title":"Solana: Create a stake account and delegate SOL with web3.js","href":"/docs/solana-delegate-sol-staking"},{"title":"Solana: Create and mint an SPL token with web3.js","href":"/docs/solana-mint-spl-tokens"},{"title":"Solana: Alpenglow consensus explained","href":"/docs/solana-alpenglow-consensus"},{"title":"Solana: Transaction v1 explained","href":"/docs/solana-transaction-v1"},{"title":"Solana: Rebuild your programs for sBPFv3","href":"/docs/solana-sbpfv3-program-migration"},{"title":"Solana: Upgrade a program from another program","href":"/docs/solana-upgrade-program-from-program"},{"title":"Solana: Rent reduction and reclaiming excess rent","href":"/docs/solana-rent-reduction-reclaim-excess-rent"},{"title":"Solana: Subscriptions and allowances","href":"/docs/solana-subscriptions-and-allowances"},{"title":"Solana: Indexing subscription events with Geyser","href":"/docs/solana-indexing-subscription-events-geyser"},{"title":"Solana: Capped onchain budgets for AI agents","href":"/docs/solana-agent-allowances-x402"},{"title":"Solana: Creating a trading and sniping pump.fun bot","href":"/docs/solana-creating-a-pumpfun-bot"},{"title":"Solana: Listening to pump.fun migrations to PumpSwap","href":"/docs/solana-listening-to-pumpfun-migrations-to-raydium"},{"title":"Solana: Listen to pump.fun mints via logsSubscribe","href":"/docs/solana-listening-to-pumpfun-token-mint-using-only-logssubscribe"},{"title":"Solana: Priority fees for a Jupiter Swap in Python","href":"/docs/solana-priority-fees-for-a-jupiter-in-python"},{"title":"Solana: Analyzing adjacent transactions for priority fees","href":"/docs/solana-analyzing-adjacent-transactions-for-priority-fees"},{"title":"Solana: How to perform token swaps using Raydium","href":"/docs/solana-how-to-perform-token-swaps-using-the-raydium-sdk"},{"title":"Solana: How to build actions and blinks","href":"/docs/solana-how-to-build-actions-and-blinks"},{"title":"Solana: PDAs and cross-program invocations","href":"/docs/solana-program-derived-addresses-and-cross-program-invocations"},{"title":"Solana: Anchor development","href":"/docs/solana-anchor-development"},{"title":"Solana: Pinocchio vs Quasar program frameworks","href":"/docs/solana-pinocchio-vs-quasar"},{"title":"Solana: The escrow pattern","href":"/docs/solana-escrow-pattern"},{"title":"Solana: Zero-knowledge proofs with Noir and Groth16","href":"/docs/solana-zk-proofs"},{"title":"Solana: Fast unit testing with LiteSVM","href":"/docs/solana-litesvm-testing"},{"title":"Solana: Surfpool quick-start","href":"/docs/solana-surfpool"},{"title":"Solana: Mainnet fork tests with the Surfpool Kit plugin","href":"/docs/solana-surfpool-kit-mainnet-fork-tests"},{"title":"Solana: Token extensions (Token-2022)","href":"/docs/solana-token-extensions"},{"title":"Solana: Create a token and vesting program","href":"/docs/solana-tutorial-creating-a-token-and-vesting-the-token-in-your-program"},{"title":"Solana: Transferring SPL tokens in TypeScript","href":"/docs/transferring-spl-tokens-on-solana-typescript"},{"title":"Solana: Enhancing SPL token transfers with retry logic","href":"/docs/enhancing-solana-spl-token-transfers-with-retry-logic"},{"title":"Solana: pluggable transaction signing with solana-keychain","href":"/docs/solana-keychain-signing"},{"title":"Solana: batching token instructions with p-token","href":"/docs/solana-ptoken-batch-instruction"},{"title":"Solana: getAccountInfo vs getMultipleAccounts","href":"/docs/solana-getaccountinfo-getmultipleaccounts"},{"title":"Solana: Borsh, Bincode, and Wincode serialization","href":"/docs/solana-serialization-borsh-bincode-wincode"},{"title":"Solana: getTokenLargestAccounts for SPL holders","href":"/docs/solana-gettokenlargestaccounts-rpc-method"},{"title":"How to land transactions on Solana","href":"/docs/solana-how-to-land-transactions"},{"title":"Solana: Understanding the compute budget","href":"/docs/solana-compute-budget"},{"title":"Solana: Priority fees for faster transactions","href":"/docs/solana-how-to-priority-fees-faster-transactions"},{"title":"Solana: Estimate priority fees with RPC methods","href":"/docs/solana-estimate-priority-fees-getrecentprioritizationfees"},{"title":"Solana: Multiple RPC endpoints for dApp performance","href":"/docs/solana-how-to-use-multiple-rpc-endpoints-optimize-dapp-performance"},{"title":"Solana: How to handle the transaction expiry error","href":"/docs/solana-how-to-handle-the-transaction-expiry-error"},{"title":"Solana: Durable nonces for offline signing","href":"/docs/solana-durable-nonces"},{"title":"Solana: Address lookup tables","href":"/docs/solana-address-lookup-tables"},{"title":"Solana: MEV protection with Jito","href":"/docs/solana-mev-protection"},{"title":"Solana Agave 2.0 upgrade reference","href":"/docs/solana-agave-20-upgrade-reference"},{"title":"Solana: Blocks vs slots explained","href":"/docs/understanding-the-difference-between-blocks-and-slots-on-solana"},{"title":"Solana: Optimize your getBlock performance","href":"/docs/solana-optimize-your-getblock-performance"},{"title":"Solana: Understanding Block Time","href":"/docs/solana-understanding-block-time"},{"title":"Solana: Associating transactions with block and block time using Yellowstone gRPC","href":"/docs/solana-transactions-block-time-yellowstone-grpc"},{"title":"Solana: Listening to pump.fun token mint using Geyser","href":"/docs/solana-listening-to-pumpfun-token-mint-using-geyser"},{"title":"Solana: Geyser and Yellowstone gRPC in Node.js","href":"/docs/solana-listening-to-programs-using-geyser-and-yellowstone-grpc-node-js"},{"title":"Solana blockSubscribe 1009 error on WebSocket","href":"/docs/solana-blocksubscribe-1009-error-on-websocket"},{"title":"Common errors with @solana/web3.js","href":"/docs/common-errors-with-solana-web3js"}]},{"group":"Best practices handbook","pages":[{"title":"Best practices handbook","sidebarTitle":"Overview","href":"/docs/chainstack-web3-development-best-practices"},{"title":"Chainbench: Benchmark your blockchain RPC endpoints","href":"/docs/chainbench-tutorial-benchmark-your-blockchain-rpc-endpoints"},{"title":"Using eRPC with Chainstack: Quickstart","href":"/docs/using-erpc-with-chainstack-quickstart"},{"title":"Using Chainstack as a Hummingbot Gateway RPC provider","href":"/docs/using-chainstack-with-hummingbot-gateway"},{"title":"Ponder: Blockchain indexing backends with Chainstack","href":"/docs/ponder-tutorial-building-blockchain-application-backends-with-chainstack"},{"title":"HTTP batch request VS multicall contract","href":"/docs/http-batch-request-vs-multicall-contract"},{"title":"Web3 dApp secrets: Environment variables guide","href":"/docs/how-to-store-your-web3-dapp-secrets-guide-to-environment-variables"},{"title":"Introduction to smart contract auditing using Foundry","href":"/docs/introduction-to-smart-contract-manual-auditing-with-foundry-and-slither"},{"title":"Web3 node.js: From zero to a full-fledged project","href":"/docs/web3-nodejs-from-zero-to-a-full-fledged-project"},{"title":"Get the most out of Chainstack platform API","href":"/docs/guide-get-the-most-out-of-the-chainstack-platform-api"},{"title":"Understanding eth_getLogs limitations","href":"/docs/understanding-eth-getlogs-limitations"},{"title":"Monitor transaction propagation to mempool in Python","href":"/docs/monitoring-transaction-propagation-from-node-to-mempool-in-evm-networks-with-python"},{"title":"Handle real-time data with WebSockets in JS \u0026 Python","href":"/docs/handle-real-time-data-using-websockets-with-javascript-and-python"},{"title":"Make your dApp more reliable with Chainstack","href":"/docs/make-your-dapp-more-reliable-with-chainstack"},{"title":"Best practices for error handling in API requests","href":"/docs/best-practices-for-error-handling-in-api-requests"},{"title":"Common SSL issues on Python and how to fix it","href":"/docs/common-ssl-issues-on-python-and-how-to-fix-it"},{"title":"EVM node returns \"Missing trie node\"","href":"/docs/evm-node-returns-missing-trie-node"},{"title":"EVM node connection: HTTP vs WebSocket","href":"/docs/evm-node-connection-http-vs-websocket"},{"title":"EVM transaction pool: pending vs queued","href":"/docs/evm-transaction-pool-pending-vs-queued"},{"title":"Adding a custom network to MetaMask","href":"/docs/adding-a-custom-network-to-metamask"},{"title":"Adding a custom RPC endpoint to Safe","href":"/docs/adding-a-custom-rpc-endpoint-to-safe"},{"title":"Adding a custom RPC endpoint to Rabby","href":"/docs/adding-a-custom-rpc-endpoint-to-rabby"},{"title":"Forking EVM-compatible mainnet with Hardhat","href":"/docs/forking-evm-compatible-mainnet-with-hardhat"},{"title":"Error reference","href":"/docs/error-reference"},{"title":"Only replay-protected (EIP-155) transactions allowed over RPC","href":"/docs/evm-only-replay-protected-eip-155-transactions-error"},{"title":"Checking node latency","href":"/docs/checking-node-latency"},{"title":"Best practices for securing your Chainstack endpoint","href":"/docs/best-practices-for-securing-your-chainstack-endpoint"},{"title":"Multithreading in Python for Web3 requests","href":"/docs/mastering-multithreading-in-python-for-web3-requests-a-comprehensive-guide"},{"title":"Authentication methods available on Chainstack","href":"/docs/authentication-methods-for-different-scenarios"},{"title":"Scaling your dApp with Kubernetes: Comprehensive guide","href":"/docs/tutorial-on-how-to-make-your-dapp-reliable-and-scalable-with-kubernetes"},{"title":"Choose the right blockchain network for your dApp","href":"/docs/navigating-the-web3-landscape-how-to-choose-the-right-blockchain-network-for-your-dapp"},{"title":"Getting started with Foundry","href":"/docs/getting-started-with-foundry"},{"title":"Ethereum: Redundant event listener with ethers/web3.js","href":"/docs/ethereum-redundant-event-llstener-ethers-web3js"},{"title":"Ethereum: Redundant event listener with Python","href":"/docs/ethereum-redundant-event-listener-python-version"}]},{"group":"Blockchain APIs guides","pages":[{"title":"Blockchain APIs guides","sidebarTitle":"Overview","href":"/docs/chainstack-blockchain-apis-guides"},{"title":"Flashblocks on Base: 200ms preconfirmations","href":"/docs/flashblocks-on-base"},{"title":"Stream real-time transactions on Base with Flashblocks","href":"/docs/base-streaming-transactions-flashblocks"},{"title":"Subblocks on Optimism: 200ms preconfirmations","href":"/docs/flashblocks-on-optimism"},{"title":"Track real-time transactions on Optimism with Subblocks","href":"/docs/optimism-streaming-transactions-flashblocks"},{"title":"Tracking some Bored Apes: The Ethereum event logs tutorial","href":"/docs/tracking-some-bored-apes-the-ethereum-event-logs-tutorial"},{"title":"Uncovering the power of eth_getBlockReceipts","href":"/docs/uncovering-the-power-of-ethgetblockreceipts"},{"title":"eth_getBlockReceipts emulator for blockchain data","href":"/docs/expanding-your-blockchain-horizons-the-eth_getblockreceipts-emulator"},{"title":"Deep dive into Merkle proofs and eth_getProof","href":"/docs/deep-dive-into-merkle-proofs-and-eth-getproof-ethereum-rpc-method"},{"title":"Geth vs Erigon: RPC method comparison on Ethereum","href":"/docs/geth-vs-erigon-deep-dive-into-rpc-methods-on-ethereum-clients"},{"title":"Ethereum logs tutorial series: Logs and filters","href":"/docs/ethereum-logs-tutorial-series-logs-and-filters"},{"title":"Custom JavaScript tracing for EVM transactions","href":"/docs/mastering-custom-javascript-tracing-for-ethereum-virtual-machine"},{"title":"Ethereum: Battleship game with zero-knowledge proofs","href":"/docs/develop-a-battleship-game-using-zero-knowledge-concepts-on-ethereum"},{"title":"Send Warp transactions with web3.js, ethers.js, web3.py","href":"/docs/sending-warp-transaction-with-web3js-ethersjs-web3py-and-ethclientgo"},{"title":"Chainlink oracles: Fetch real-time crypto prices","href":"/docs/harnessing-chainlink-oracles-with-chainstack-fetching-real-time-crypto-prices-from-ethereum"},{"title":"Fetch BAYC transfer events with web3.js getPastEvents","href":"/docs/fetching-transfer-events-with-getpastevents-for-a-bayc-nft"},{"title":"Fix Ethereum's filter not found error","href":"/docs/understanding-ethereums-filter-not-found-error-and-how-to-fix-it"},{"title":"Introducing Bun: The future of JavaScript runtimes","href":"/docs/introducing-bun-the-future-of-javascript-runtimes"},{"title":"Fetch address transactions with eth_getBlockByNumber","href":"/docs/fetching-transactions-to-and-from-a-specific-address-with-eth_getblockbynumber"},{"title":"cryo: Your gateway to blockchain data","href":"/docs/cryo-your-gateway-to-blockchain-data"},{"title":"cryo with Chainstack: Blockchain data mastery in Python","href":"/docs/cryo-with-chainstack-and-python"},{"title":"Exploring Bitcoin transactions with `getrawtransaction`","href":"/docs/exploring-bitcoin-transactions-with-getrawtransaction"},{"title":"MESC (Multi-Endpoint Shared Configuration) setup","href":"/docs/mesc-and-chainstack"},{"title":"ethers.js FallbackProvider for data reliability","href":"/docs/enhancing-blockchain-data-reliability-with-ethers-fallbackprovider"},{"title":"Web3.js: How to use the Chainstack plugin","href":"/docs/web3js-how-to-use-the-new-chainstack-plugin"},{"title":"ethers.js ChainstackProvider: Multi-chain balance checker","href":"/docs/ethersjs-chainstackprovider-how-to-multi-chain-wallet-balance-aggregator"}]},{"group":"Chainstack Marketplace","pages":[{"title":"Chainstack Marketplace","sidebarTitle":"Overview","href":"/docs/chainstack-marketplace-tutorials"},{"title":"JWT: Implement secure user authentication","href":"/docs/tutorial-mastering-jwt-how-to-implement-secure-user-authentication"},{"title":"JWT validation in Go for Chainstack Marketplace","href":"/docs/implementing-jwt-validation-in-golang-for-chainstack-marketplace-integration"}]},{"group":"Web3pedia","pages":[{"title":"Web3pedia","sidebarTitle":"Overview","href":"/docs/web3pedia-introduction"},{"title":"Web3 Lingo","href":"/docs/web3-language-and-acronyms"},{"title":"Development frameworks and libraries","href":"/docs/web3-development-frameworks-and-libraries-glossary"},{"title":"Smart contracts","href":"/docs/smart-contracts-glossary"},{"title":"Security","href":"/docs/web3-security-glossary"},{"title":"Infrastructure","href":"/docs/web3-infrastructure-glossary"},{"title":"Solana glossary","href":"/docs/solana-glossary"}]}]},{"group":"MCP servers","pages":[{"title":"Chainstack MCP server","href":"/docs/chainstack-mcp-server"},{"title":"Developer Portal MCP server","href":"/docs/developer-portal-mcp-server"},{"title":"EVM MCP server","href":"/docs/evm-mcp-server"},{"title":"Solana MCP server","href":"/docs/solana-mcp-server"}]},{"group":"Marketplace","pages":[{"title":"About Marketplace","href":"/docs/about-marketplace"},{"title":"List your app on marketplace","href":"/docs/list-your-app-on-marketplace"},{"title":"Work with Marketplace","href":"/docs/work-with-chainstack-marketplace"}]},{"group":"Chainstack Compare","pages":[{"title":"Chainstack Compare dashboard","href":"/docs/chainstack-compare-dashboard"}]},{"group":"Chainstack ChatGPT plugin","pages":[{"title":"Chainstack ChatGPT plugin overview","href":"/docs/chainstack-chat-gpt-plugin-introduction"}]},{"group":"Chainstack DLP browser extension","pages":[{"title":"Chainstack DLP tool overview","href":"/docs/chainstack-data-leak-protection-tool-introduction"}]},{"group":"Protocols","pages":[{"title":"Configurations","href":"/docs/protocols-configurations"},{"title":"Networks","href":"/docs/protocols-networks"},{"title":"Modes and types","href":"/docs/protocols-modes-and-types"},{"title":"Extended history","href":"/docs/extended-nodes"},{"title":"Clients","href":"/docs/protocols-clients"},{"title":"Available clouds, regions, \u0026 locations","href":"/docs/nodes-clouds-regions-and-locations"},{"title":"Mempool configurations","href":"/docs/mempool-configuration"},{"group":"Available node methods","pages":[{"title":"Available node methods","sidebarTitle":"Overview","href":"/docs/available-node-methods"},{"title":"Arc methods","href":"/docs/arc-methods"},{"title":"Ethereum methods","href":"/docs/ethereum-methods"},{"title":"Solana methods","href":"/docs/solana-methods"},{"title":"BNB Smart Chain methods","href":"/docs/bnb-smart-chain-methods"},{"title":"Polygon methods","href":"/docs/polygon-methods"},{"title":"Plasma methods","href":"/docs/plasma-methods"},{"title":"Robinhood Chain methods","href":"/docs/robinhood-methods"},{"title":"Elysium methods","href":"/docs/elysium-methods"},{"title":"Arbitrum methods","href":"/docs/arbitrum-methods"},{"title":"Base methods","href":"/docs/base-methods"},{"title":"Hyperliquid methods","href":"/docs/hyperliquid-methods"},{"title":"TRON methods","href":"/docs/tron-methods"},{"title":"Optimism methods","href":"/docs/optimism-methods"},{"title":"Avalanche methods","href":"/docs/avalanche-methods"},{"title":"TON methods","href":"/docs/ton-methods"},{"title":"Ronin methods","href":"/docs/ronin-methods"},{"title":"ZKsync Era methods","href":"/docs/zksync-era-methods"},{"title":"Starknet methods","href":"/docs/starknet-methods"},{"title":"Scroll methods","href":"/docs/scroll-methods"},{"title":"Aptos methods","href":"/docs/aptos-methods"},{"title":"Fantom methods","href":"/docs/fantom-methods"},{"title":"Sonic methods","href":"/docs/sonic-methods"},{"title":"Cronos methods","href":"/docs/cronos-methods"},{"title":"Gnosis Chain","href":"/docs/gnosis-chain"},{"title":"Kaia methods","href":"/docs/kaia-methods"},{"title":"Celo methods","href":"/docs/celo-methods"},{"title":"Bitcoin methods","href":"/docs/bitcoin-methods"},{"title":"Harmony methods","href":"/docs/harmony-methods"},{"title":"MegaETH methods","href":"/docs/megaeth-methods"},{"title":"Tempo methods","href":"/docs/tempo-methods"},{"title":"World Chain methods","href":"/docs/worldchain-methods"},{"title":"Stable methods","href":"/docs/stable-methods"}]}]},{"group":"Advanced APIs","pages":[{"title":"Advanced APIs","href":"/docs/advanced-apis-introduction"},{"group":"Warp transactions","pages":[{"title":"Warp transactions","sidebarTitle":"Overview","href":"/docs/warp-transactions"},{"title":"Solana Trader Nodes with Warp transactions","href":"/docs/solana-trader-nodes"},{"title":"Ethereum Trader Nodes with Warp transactions","href":"/docs/ethereum-trader-nodes"},{"title":"BNB Smart Chain Trader Nodes with Warp transactions","href":"/docs/bnb-trader-nodes"}]},{"title":"Debug \u0026 Trace APIs","href":"/docs/debug-and-trace-apis"},{"title":"Reading EVM traces: callTracer and prestateTracer","href":"/docs/reading-evm-traces-with-calltracer-and-prestatetracer"}]},{"group":"Tooling","pages":[{"title":"Protocols and tooling: Web3 libraries and frameworks","href":"/docs/protocols-tooling-introduction"},{"title":"Ethereum tooling","href":"/docs/ethereum-tooling"},{"title":"Solana tooling","href":"/docs/solana-tooling"},{"title":"BNB Smart Chain tooling","href":"/docs/bsc-tooling"},{"title":"Polygon tooling","href":"/docs/polygon-tooling"},{"title":"Arbitrum tooling","href":"/docs/arbitrum-tooling"},{"title":"Base tooling","href":"/docs/base-tooling"},{"title":"Optimism tooling","href":"/docs/optimism-tooling"},{"title":"Avalanche tooling","href":"/docs/avalanche-tooling"},{"title":"Hyperliquid tooling","href":"/docs/hyperliquid-tooling"},{"title":"TON tooling","href":"/docs/ton-tooling"},{"title":"Unichain tooling","href":"/docs/unichain-tooling"},{"title":"Ronin tooling","href":"/docs/ronin-tooling"},{"title":"Sui tooling","href":"/docs/sui-tooling"},{"title":"Sui gRPC endpoint","href":"/docs/sui-grpc-endpoint"},{"title":"Sui GraphQL endpoint","href":"/docs/sui-graphql-endpoint"},{"title":"Migrate Sui from JSON-RPC to gRPC and GraphQL","href":"/docs/sui-migrate-json-rpc-to-grpc"},{"title":"Berachain tooling","href":"/docs/berachain-tooling"},{"title":"Monad tooling","href":"/docs/monad-tooling"},{"title":"Linea tooling","href":"/docs/linea-tooling"},{"title":"Mantle tooling","href":"/docs/mantle-tooling"},{"title":"MegaETH tooling","href":"/docs/megaeth-tooling"},{"title":"Polkadot tooling","href":"/docs/polkadot-tooling"},{"title":"zkSync Era tooling","href":"/docs/zksync-era-tooling"},{"title":"Zora tooling","href":"/docs/zora-tooling"},{"title":"Starknet tooling","href":"/docs/starknet-tooling"},{"title":"Scroll tooling","href":"/docs/scroll-tooling"},{"title":"Aptos tooling","href":"/docs/aptos-tooling"},{"title":"Sonic tooling","href":"/docs/sonic-tooling"},{"title":"Fantom tooling","href":"/docs/fantom-tooling"},{"title":"TRON tooling","href":"/docs/tron-tooling"},{"title":"Cronos tooling","href":"/docs/cronos-tooling"},{"title":"Gnosis Chain tooling","href":"/docs/gnosis-tooling"},{"title":"Kaia (ex. Klaytn) tooling","href":"/docs/klaytn-tooling"},{"title":"Celo tooling","href":"/docs/celo-tooling"},{"title":"Bitcoin tooling","href":"/docs/bitcoin-tooling"},{"title":"Bitcoin testnets: Testnet, Signet Testnet, and Testnet4","href":"/docs/bitcoin-testnets"},{"title":"Zcash tooling","href":"/docs/zcash-tooling"},{"title":"Harmony tooling","href":"/docs/harmony-tooling"},{"title":"opBNB tooling","href":"/docs/opbnb-tooling"},{"title":"Filecoin tooling","href":"/docs/filecoin-tooling"},{"title":"Plasma tooling","href":"/docs/plasma-tooling"},{"title":"Tempo tooling","href":"/docs/tempo-tooling"},{"title":"Robinhood Chain tooling","href":"/docs/robinhood-tooling"},{"title":"Elysium tooling","href":"/docs/elysium-tooling"},{"title":"Arc tooling","href":"/docs/arc-tooling"},{"title":"World Chain tooling","href":"/docs/worldchain-tooling"},{"title":"Ink tooling","href":"/docs/ink-tooling"},{"title":"X Layer tooling","href":"/docs/xlayer-tooling"},{"title":"Stable tooling","href":"/docs/stable-tooling"},{"title":"XRP Ledger tooling","href":"/docs/xrpl-tooling"},{"title":"Stellar tooling","href":"/docs/stellar-tooling"}]}]},{"tab":"API","pages":[{"title":"API","href":"/reference/blockchain-apis"}]},{"tab":"Release notes","pages":[{"title":"Release notes","href":"/changelog"}]}]},{"product":"Self-Hosted","icon":"server","description":"Deploy on your own infrastructure","pages":[{"title":"Self-Hosted","href":"/docs/self-hosted/introduction"}]}]},"title":"BNB Smart Chain: BEP-1155 with Truffle \u0026 OpenZeppelin - Chainstack","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":[],"chunks":[]}