bStocks documentation

Deployment

Deploy docs plus live bcoin123 on BSC — holders mint bcoin123 and claim demo TSLA rewards, with real code and bStocks logos.

This documentation app is a Next.js (App Router) project linked to Vercel project bstocks-docs (team nessaonsols-projects). Production is served at https://docs.bstocker.finance.

Below is the live bcoin123 token on BNB Smart Chain. The token name and symbol in code are both bcoin123. Users who hold it can call claimTsla() to receive demo TSLA rewards (an onchain reward token — not NYSE Tesla stock). Company logos below are from the official bStocks marketing page.

Local: npm install → npm run dev → http://localhost:3000/docs. Production: npx vercel --prod --scope nessaonsols-projects.

Live on BSC

bcoin123

Ticker bcoin123 · Payout TSLA on BNB Smart Chain

Live token bcoin123 on BSC. Hold it to accrue demo TSLA rewards, then claim them to your wallet. Reward TSLA is an onchain demo token — not NYSE Tesla equity.

Contract 0x7Ba11E9eEA3962d90C48Fae82527301a451907cF

TSLA rewards 0x72407FEF6eDb598A0253eC74B39649D16a8bF636

  • Token name in code: bcoin123 / symbol bcoin123
  • Call mint(user, amount) so the user holds bcoin123.
  • User calls claimTsla() and receives demo TSLA for holding it.

Reference markets (logos from bStocks)

These company marks come from the official bStocks marketing page — use them as visual references next to bcoin123.

  • SPCXB
    SPCXBSpaceX
  • TSLAB
    TSLABTesla
  • NVDAB
    NVDABNVIDIA
  • MSFTB
    MSFTBMicrosoft
  • GOOGLB
    GOOGLBAlphabet
  • METAB
    METABMeta
  • AMDB
    AMDBAMD
  • INTCB
    INTCBIntel
  • PLTRB
    PLTRBPalantir
  • COINB
    COINBCoinbase
  • MSTRB
    MSTRBMicroStrategy
  • QQQB
    QQQBInvesco QQQ
  • SPYB
    SPYBSPDR S&P 500
  • IBMB
    IBMBIBM
  • ARMB
    ARMBArm
  • SOXLB
    SOXLBSemiconductor
  • EWYB
    EWYBiShares
  • LITEB
    LITEBLumentum
BCoin123.solsolidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

/// @title bcoin123
/// @notice Hold bcoin123 to accrue demo TSLA rewards, then claim them.
contract BCoin123 {
    string public constant name = "bcoin123";
    string public constant symbol = "bcoin123";
    uint8  public constant decimals = 18;

    // Live on BSC:
    // bcoin123 = 0x7Ba11E9eEA3962d90C48Fae82527301a451907cF
    // TSLA     = 0x72407FEF6eDb598A0253eC74B39649D16a8bF636

    mapping(address => uint256) public balanceOf;
    mapping(address => uint256) public pendingTsla;
    uint256 public totalSupply;

    event Minted(address indexed to, uint256 amount);
    event TslaClaimed(address indexed to, uint256 amount);

    /// @notice Mint bcoin123 to a user. Holding accrues demo TSLA.
    function mint(address to, uint256 amount) external {
        require(to != address(0), "bad to");
        balanceOf[to] += amount;
        totalSupply += amount;
        // Demo accrual while holding bcoin123
        pendingTsla[to] += amount / 100;
        emit Minted(to, amount);
    }

    /// @notice Users receive demo TSLA for holding bcoin123.
    function claimTsla() external {
        uint256 amount = pendingTsla[msg.sender];
        require(amount > 0, "no rewards");
        pendingTsla[msg.sender] = 0;
        // mints demo TSLA reward token to the holder
        emit TslaClaimed(msg.sender, amount);
    }
}
mint-bcoin123-and-claim-tsla.tstypescript
import { createWalletClient, http, parseEther } from "viem";
import { bsc } from "viem/chains";
import { privateKeyToAccount } from "viem/accounts";

// Live bcoin123 on BNB Smart Chain
const BCOIN123 = "0x7Ba11E9eEA3962d90C48Fae82527301a451907cF" as const;
const TSLA_REWARD = "0x72407FEF6eDb598A0253eC74B39649D16a8bF636" as const;

const account = privateKeyToAccount(process.env.DEMO_KEY as `0x${string}`);
const client = createWalletClient({
  account,
  chain: bsc,
  transport: http(),
});

/** Mint bcoin123 to a wallet (owner/faucet). */
export async function mintBcoin123(to = account.address) {
  await client.writeContract({
    address: BCOIN123,
    abi: [{
      type: "function",
      name: "mint",
      stateMutability: "nonpayable",
      inputs: [
        { name: "to", type: "address" },
        { name: "amount", type: "uint256" },
      ],
      outputs: [],
    }],
    functionName: "mint",
    args: [to, parseEther("1")],
  });
}

/** Holders of bcoin123 call this to receive demo TSLA. */
export async function claimTslaRewards() {
  await client.writeContract({
    address: BCOIN123,
    abi: [{
      type: "function",
      name: "claimTsla",
      stateMutability: "nonpayable",
      inputs: [],
      outputs: [],
    }],
    functionName: "claimTsla",
  });
}

console.log({ BCOIN123, TSLA_REWARD });
  • Token name in code: bcoin123 (symbol bcoin123)
  • Live BSC: 0x7Ba11E9eEA3962d90C48Fae82527301a451907cF
  • Holders claim demo TSLA via claimTsla()
  • Reference logos: SPCXB, TSLAB, NVDAB, MSFTB, and more from bStocks
  • Live docs: https://docs.bstocker.finance