OJA Coin
  • OJA Coin Intro
  • Guides
    • β˜•Get Started
    • πŸ›£οΈRoadmap
    • πŸ“ƒWhitepaper
    • 🀝Coinomics
    • πŸ”—Official Links
    • πŸ’ΉBuy OJA Coin
    • ✨OJX Node Installation
  • PRODUCTS
    • ⚑OJA Blockchain (OJX)
    • πŸ‘¨β€πŸ’»OJA Wallet
    • πŸ†OJA Rewards
    • πŸ“ˆOJA Trading / Exchange
    • πŸͺ™OJA Payment
  • OJA SMART CHAIN (OJX20)
    • β˜•Get Started (OJX20)
    • 🌟OJA Coin Smart Chain
      • Concepts
        • Consensus
        • Genesis File
      • Source Code
      • Main Network Explorer
      • Test Network Explorer
      • OJX20 Wallet
    • πŸ’»Developers
      • General
        • Create Wallet
        • Smart Contract
        • Remix
        • Web3JS
        • Truffle
      • Deploy
        • Remix
        • Truffle
        • HardHat
      • Tools
      • BRC20 Tokens
        • Introduction
        • Issue Token
      • Blockchain Details
        • OJX Chain Fullnode
        • RPC
      • Tutorial
        • Deploy NFT
        • Local OJX Network
    • 🚰OJX Faucet
    • ❔FAQ
      • OJA Coin Smart Chain FAQ
        • General
          • Info
          • OJA Coin Smart Chain (OJX20)
          • Ecosystem
        • Token
          • Intro
      • Contributing
  • OJA COIN MINING
    • β˜•Get Started
    • πŸ’ΈSole Mining (CPU)
    • πŸ’°Masternode Mining
    • πŸ–₯️GPU Mining
  • Others
    • OJA Brand Assets
    • Support
  • Terms
    • Privacy Policy
    • Terms and User Agreement
Powered by GitBook
On this page
  1. OJA SMART CHAIN (OJX20)
  2. Developers
  3. BRC20 Tokens

Introduction

PreviousBRC20 TokensNextIssue Token

Last updated 3 years ago

A OJX20 token must implement the interface INRC20 in OJX20.sol. This is a template contract OJX20Token.template. Users just need to fill in _name, _symbol, _decimals and _totalSupply according to their own requirements:

  constructor() public {
    _name = {{TOKEN_NAME}};
    _symbol = {{TOKEN_SYMBOL}};
    _decimals = {{DECIMALS}};
    _totalSupply = {{TOTAL_SUPPLY}};
    _balances[msg.sender] = _totalSupply;

    emit Transfer(address(0), msg.sender, _totalSupply);
  }

Then users can use and to compile and deploy the OJX20 contract to TC.

Interact with Contract with and NodeJS.

Connect to OJX Chain's public RPC endpoint

const Web3 = require('web3');
// mainnet
const web3 = new Web3('https://mainnet-rpc.ojxscan.com');

// testnet
const web3 = new Web3('https://testnet-rpc.ojxscan.com');

Create a wallet

web3.eth.accounts.create([entropy]);

Output:

web3.eth.accounts.create();
{
  address: '0x926605D0729a968266f1BB299d8Df0471C4F5367',
  privateKey: '0x6b4618539d95f205f33e916e89404b301dde545c0c4acc181fd0c0b42708bad3',
  signTransaction: [Function: signTransaction],
  sign: [Function: sign],
  encrypt: [Function: encrypt]
}

Recover a wallet

const account = web3.eth.accounts.privateKeyToAccount("0xe500f5754d761d74c3eb6c2566f4c568b81379bf5ce9c1ecd475d40efe23c577")

Check balance

web3.eth.getBalance(holder).then(console.log);

Output:

The balance will be bumped by e18 for OJX.

6249621999900000000

Create transaction

Parameters

  • Object - The transaction object to send:

  • from - String|Number: The address for the sending account. Uses the web3.eth.defaultAccount property, if not specified. Or an address or index of a local wallet in web3.eth.accounts.wallet.

  • to - String: (optional) The destination address of the message, left undefined for a contract-creation transaction.

  • value - Number|String|BN|BigNumber: (optional) The value transferred for the transaction in wei, also the endowment if it’s a contract-creation transaction.

  • gas - Number: (optional, default: To-Be-Determined) The amount of gas to use for the transaction (unused gas is refunded).

  • gasPrice - Number|String|BN|BigNumber: (optional) The price of gas for this transaction in wei, defaults to web3.eth.gasPrice.

  • data - String: (optional) Either a ABI byte string containing the data of the function call on a contract, or in the case of a contract-creation transaction the initialisation code.

  • nonce - Number: (optional) Integer of a nonce. This allows to overwrite your own pending transactions that use the same nonce.

    // // Make a transaction using the promise
    web3.eth.sendTransaction({
        from: holder,
        to: '0x0B75fbeB0BC7CC0e9F9880f78a245046eCBDBB0D',
        value: '1000000000000000000',
        gas: 5000000,
        gasPrice: 18e9,
    }, function(err, transactionHash) {
      if (err) {
        console.log(err);
        } else {
        console.log(transactionHash);
       }
    });
πŸ’»
Remix IDE
Metamask
Web3