{
  "name": "TOIN",
  "symbol": "TOIN",
  "description": "TOIN Token - Multi-Chain Token for BotoIn",
  "website": "https://botoin.com",
  "socials": {
    "twitter": "https://twitter.com/BotoIn_x",
    "telegram": "https://t.me/botoin"
  },
  "logo": "https://gateway.pinata.cloud/ipfs/QmPjEnT8xSReE2JNpJfxNUc6XDrVvE2BtrjfPTMyLu7NNe",
  "token_type": "ERC-20",
  "platform": {
    "name": "Ethereum",
    "address": "0x85cAE2a6C42d5fe08Bd879633CeC4e0d1D944340"
  },
  "contracts": [
    {
      "network": "ethereum",
      "networkId": 11155111,
      "decimals": 18,
      "address": "0x85cAE2a6C42d5fe08Bd879633CeC4e0d1D944340",
      "metadata": "ipfs://QmaCL6RFtWFrUJESuqzyHdqLw1HWdgNgZjjvcjqpaejK9S",
      "description": "ToinToken contract: ERC-20 with Burnable + Permit (gasless approvals) and IPFS metadata via setMetadataURI.",
      "usage": "Standard transfer/approve/transferFrom/burn/permit; the owner updates metadata with setMetadataURI(ipfs://<CID>)."
    },
    {
      "network": "ton",
      "networkId": null,
      "decimals": 18,
      "address": "EQBfCdnKTjt593k-azpw50fZhErcVnCC3ofLz8XJJwRWWGID",
      "standard": "Jetton",
      "contract": "contracts/ton/ToinToken.tact",
      "description": "Standard TEP-74 Jetton for TON (ToinToken minter + wallet). Interoperable with Tonkeeper and TON wallets.",
      "usage": "Transfer/receive jettons via TEP-74; the owner can update the content (IPFS metadata) with SetContent without redeploying."
    },
    {
      "network": "solana",
      "networkId": null,
      "decimals": 9,
      "address": "tC5t97bu9Agxm4o41tmKyEyzCuffSCV96PBL9vP6Hi3",
      "programId": "ECL6k5H2MXXL8hcPLsFFKFAKtKk5r7u6gKKZ19xGxaRt",
      "standard": "SPL",
      "contract": "contracts/solana/src/lib.rs",
      "description": "TOIN Anchor SPL program with on-chain supply cap (SupplyCaps PDA) and real mint authority (SPL).",
      "usage": "initialize_mint creates mint+SupplyCaps; mint_tokens mints validating authority and cap; transfer_tokens/burn_tokens transfer/burn. Supply 100M x 10^9."
    }
  ],
  "ecosystem_contracts": [
    {
      "name": "toinVesting",
      "address": "0xF515Ea605DaC01f0A7A819F029DDd72336dc49D6",
      "description": "Multi-beneficiary vesting for TOIN (team, investors, liquidity). Each account has a schedule with cliff + linear release.",
      "usage": "The owner funds TOIN with addSchedule(account,total,start,cliff,duration,revocable). release(account) releases the vested portion; revoke(account) returns the unvested portion to the owner (only if revocable)."
    },
    {
      "name": "subscriptionRegistry",
      "address": "0x24208bE37917C39acb918537E935F690Ff065B7e",
      "description": "On-chain BotoIn PRO subscriptions. The user pays a monthly price (TOIN/USDC/ETH) and gets PRO access with automatic expiry.",
      "usage": "The owner sets prices with setPrice(token,monthly)/setNativePrice(monthly). subscribe(token,months) extends the user's PRO (max 120 months). The dashboard validates with isActive(user)."
    },
    {
      "name": "feeCollector",
      "address": "0xFFaaa7422b02438e6CA54a9b30A50b2A85eC3c64",
      "description": "Centralized treasury that receives bot/ecosystem fees for TOIN in ETH and ERC-20.",
      "usage": "deposit()/depositToken(token,amount) add funds (anyone). withDrawETH()/withdrawToken(token,to) withdraw (owner only). Pausable in emergencies."
    },
    {
      "name": "stakingRewards",
      "address": "0x4e1360DA14F0a3f23E959904234A47E9e88792cb",
      "description": "TOIN staking with TOIN rewards (Synthetix pattern). Rewards distributed linearly over rewardsDuration.",
      "usage": "stake(amount) locks TOIN and accrues rewards; withdraw(amount) unlocks; getReward() claims. The owner funds the pool with notifyRewardAmount(amount)."
    },
    {
      "name": "referralRegistry",
      "address": "0xC27E1418256D0fD34552C936e190055b36d52713",
      "description": "On-chain BotoIn referral program. Unique codes, immutable referrer per user.",
      "usage": "A user registers their code with registerCode(code); a referred user links with setReferrer(code). The owner pays the reward with payReferral(referrer,token,amount) (only to registered referrers)."
    },
    {
      "name": "multiSigWallet",
      "address": "0x01c5d9dC54c1a0e7232545C7c3b67c7bf7Aa2dBe",
      "description": "N-of-M multisig (Gnosis-style) for the treasury and project control (FeeCollector withdrawals, ownership, operator rotation).",
      "usage": "Owners create transactions with submitTransaction(to,value,data) and confirm them; executeTransaction(txId) executes once `required` is reached. Owner changes use schedule/confirm/execute with supermajority + timelock (adminDelay)."
    }
  ],
  "total_supply": 100000000,
  "notes": "Manifiesto generado automáticamente por scripts/generate_exchange_manifests.mjs"
}