Do the work. Choose your stock. Mine it straight into your wallet.
A permissionless Proof-of-Work protocol on Robinhood Chain. Computational work is verified onchain and rewarded in the eligible Stock Token you choose — paid from a vault that actually holds it.
Set a target reward asset from the eligible allowlist. Every valid proof pays out in that Stock Token, valued in USD by its Chainlink feed and drawn from the reward vault. Switch your target whenever you like — the proof-of-work is the same; only the payout asset changes.
These are Robinhood Stock Tokens on Robinhood Chain. Only assets registered by verified contract address, priced by a live feed, and held by the vault can be mined; availability and eligibility are jurisdiction-dependent.
Each epoch has a unique challenge, a difficulty target, and a submission window. Miners vary a nonce until they find a hash below the target. The reward per valid proof is set by the protocol in USD terms; it's paid to you in the eligible Stock Token you selected, from the vault. Difficulty self-adjusts toward a target block time with clamped swings.
// each epoch derives a fresh challenge challenge = H(previousChallenge || epoch || difficulty || domainSeparator) // miner iterates the nonce space hash = H(challenge || minerAddress || nonce) // valid when the hash falls under the target valid = uint256(hash) < target ; target = MAX_TARGET / difficulty // payout: usdReward / oraclePrice(chosenAsset), paid from the vault
A submitted proof is untrusted input. Before paying, the contract verifies the epoch, challenge, miner-address binding, nonce, target, and recomputed digest — confirms the proof is unique, the epoch is live, the chosen asset is eligible with a fresh non-zero price, and the vault holds enough of it. Any failure reverts.
mapping(bytes32 => bool) public usedProofs; proofId = keccak256(abi.encode(epoch, miner, nonce, digest)); require(!usedProofs[proofId], "proof already used"); require(asset.enabled && vaultBalance[asset] >= payout, "asset unavailable");
Illustrative — exact implementation must be independently audited before deployment.
Mining distributes assets the protocol already owns. The reward vault is funded by the 10% transaction tax, treasury allocations, and market purchases of eligible Stock Tokens. It's held by the contract — not a dev wallet — and assets leave it in one direction only: to miners who submit a valid proof. No person, including the deployer, can withdraw or redirect it.
FUNDING REWARD VAULT
10% tax ---> holds eligible Stock Tokens
treasury ---> (AAPL, TSLA, SPY, ...)
buys ---> |
valid proof ---> MINER
| (chosen asset)
vault balance for an asset only DECREMENTS
via proof payout
x no admin withdraw / sweep / rescue
x no redirect of vault assets
// read-only — verify vault holdings at any block function vaultBalance(address asset) external view returns (uint256); function eligibleAssets() external view returns (address[] memory); // no ownerWithdraw / sweep / rescue path exists on vault assets
$HASH is the protocol's native token and the thing that trades. Its 10% transfer tax is the fuel: a slice continuously buys eligible Stock Tokens for the reward vault, so miners always have something to mine. Every allocation is a configurable parameter — not immutable unless the deployed contract makes it so.
TAX_BPS = 1000; // 10%
tax = amount * TAX_BPS / 10_000; net = amount - tax;
Tax funds the vault; miners mine it out; the activity feeds more tax. A separate slice buys back and burns $HASH. Both are mechanics, not a promise of price appreciation.
Buyback & vault purchases are protected by slippage/min-output limits, deadlines, reentrancy guards, a router allowlist, max swap size, and pause. DEX integration is planned architecture in this prototype.
Staking is distinct from mining. Stake $HASH to earn from a defined source — protocol emissions, a treasury allocation, or a tax allocation — using a standard reward-per-token model. Mining earns through work; staking through locked capital. Staking does not create yield.
Example lock tiers — not deployed parameters unless confirmed onchain.
| Mining | Staking | |
|---|---|---|
| Requires hardware | Yes | No |
| Requires $HASH ownership | No | Yes |
| Performs Proof-of-Work | Yes | No |
| Earns your chosen Stock Token | Yes | No |
| Earns staking rewards | No | Yes |
Every figure is read from RPC, contract reads, an event indexer, and oracle feeds — nothing here is fabricated. Fields show — until live data is available.
# example CLI · Linux / Windows / macOS / Docker
miner --rpc https://YOUR-RPC --wallet YOUR_ADDRESS --asset AAPL --threads 8
Every HoodHash contract address lives in one config object and is independently verifiable onchain. Always confirm the address before you interact with a contract.
const CONFIG = { chain: { name: "Robinhood Chain", id: 4663, gasToken: "ETH", rpc: "[SET RPC]" }, token: { symbol: "$HASH", maxSupply: "[SET]" }, taxBps: 1000, upgradeModel: "[IMMUTABLE | UPGRADEABLE-VIA-TIMELOCK]", eligibleAssets: [ /* Stock Token addr + Chainlink feed per asset */ ], contracts: { token:"0x00..", mining:"0x00..", rewardVault:"0x00..", staking:"0x00..", taxRouter:"0x00..", buyback:"0x00..", treasury:"0x00.." } };
function currentEpoch() external view returns(uint256); function submitProof(uint256 epoch, uint256 nonce, bytes32 digest, address chosenAsset) external; function setRewardAsset(address asset) external; // choose what you mine event StockMined(address indexed miner, address indexed asset, uint256 amount, uint256 usdValue); event VaultFunded(address indexed asset, uint256 amount);
Sensitive operations sit behind multisig → timelock, never a single key. Immutable vs. governed params clearly distinguished.
Arbitrum Orbit L2 · chain ID 4663 · ETH gas · no native chain token · testnet 46630. RPC set in CONFIG, not hard-coded.
Every contract is independently audited and the report published before it holds user funds. HoodHash never claims an audit until the report is public — verify the current report before interacting.
Eligible Stock Tokens on Robinhood Chain — ERC-20s that track a stock or ETF's price. You choose which one; valid proofs pay you in that asset from the vault, valued by its Chainlink feed. You are not mining, buying, or owning real shares.
No. Stock Tokens give economic exposure only — no ownership, legal/beneficial rights, or voting. They are not registered under U.S. securities laws and are not available to U.S. persons; other jurisdictions are restricted. Verify your eligibility.
The reward vault holds real Stock Tokens, funded by the 10% tax, treasury, and market purchases. Mining distributes what the vault holds — nothing is minted out of thin air. You can only mine an asset while the vault can back it.
Only assets on the eligible allowlist: registered by verified contract address, priced by a live feed, and held by the vault. If your pick is depleted, choose another or wait for the vault to refill.
$HASH is the native traded token whose 10% transfer tax funds the vault (and a buyback-and-burn). It's the economic engine that keeps stocks available to mine. Whether the tax is immutable or governed depends on the deployed contract.
Stock Tokens are restricted, jurisdiction-gated exposure instruments, and a protocol that distributes them for work sits in a real regulatory grey area. Nothing here is legal advice; eligibility and compliance are the user's responsibility, and the protocol should have counsel before launch.
Experimental software and speculative assets. Participation can result in total loss. Risks include, without limitation:
HoodHash does not promise profits, guaranteed APY, appreciation, mining profitability, Stock Token availability, or buyback impact. Stock Tokens are exposure only, not share ownership, and are unavailable to U.S. persons. Nothing here is financial, legal, tax, or investment advice. Verify eligibility in your jurisdiction before participating.