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
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.
- 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.
SPCXBSpaceX
TSLABTesla
NVDABNVIDIA
MSFTBMicrosoft
GOOGLBAlphabet
METABMeta
AMDBAMD
INTCBIntel
PLTRBPalantir
COINBCoinbase
MSTRBMicroStrategy
QQQBInvesco QQQ
SPYBSPDR S&P 500
IBMBIBM
ARMBArm
SOXLBSemiconductor
EWYBiShares
LITEBLumentum
// 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);
}
}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