Bogeme

Smart Contract

1. Overview

Payment actions on Bogeme are submitted in transactions that call our smart contract on Base. Value moves in USDC directly from your wallet to the recipient (and treasury for the platform fee) in that same transaction.

The platform never holds your keys and never takes custody of your funds: every operation is signed by your own wallet (an embedded smart account or your linked external Web3 wallet).

2. Address and Network

3. What the Contract Does

The contract records supported actions – donations, tips, subscriptions (including upgrades and auto-renewals), one-time post unlocks and paid message unlocks – and emits an event for each one, carrying the gross / net / fee triple. Those events feed the product surface you see: stream alerts, transaction history, content entitlements.

Auto-renewal is initiated only by a session key the user authorized in advance – the contract never renews a subscription on its own initiative.

It also enforces the payment rules on every transaction you sign: amount bounds (1 USDC to 1,000,000 USDC), no self-payments, and subscription duration limits (1–36 months). Two safety mechanisms protect the contract itself: a re-entrancy guard on every payment function, and an owner-only emergency pause that can halt all payments at once.

Platform fees are routed to the treasury as a separate USDC transfer inside the same transaction (from your wallet to the recipient and from your wallet to the treasury). The contract does not maintain a deposit balance, a vault, or a per-user account.

4. What the Contract Does Not Do

  • It does not custody your USDC. Balances live in your wallet. Bogeme cannot move your USDC without a transaction you authorize.
  • It is not a bank or a deposit account. There is no platform balance inside the contract.
  • It does not recover access to your wallet, your embedded smart account or your seed phrase.
  • It cannot reverse a payment sent on the wrong network or in the wrong token.
  • It does not hide anything. On-chain transfers remain publicly visible on the block explorer.

5. Fees

  • Platform fee – 8%. Applied to donations, tips, subscriptions and upgrades, and to post and message unlocks. The rate is stored on-chain (in basis points, currently 800) and is hard-capped by a compile-time constant of 800 bps – a governance change can set the fee at or below the cap, never above it.
  • Network fee (gas) is separate and always shown as an estimate in the UI before you sign. Payments from a Bogeme smart account settle gas in USDC via an ERC-20 paymaster; if you transact from your linked external Web3 wallet, gas is paid in the network's native token (ETH).

6. Upgrades and Risks

Our Smart Contract is deployed behind a UUPS proxy. The contract address stays stable; the underlying logic contract can be replaced by the owner through an upgrade. Storage layout is preserved across upgrades by design (an __gap__ is reserved for future fields), but any upgrade is a trust boundary you should be aware of.

The contract has not been independently audited. The code can contain bugs. Do not route amounts you are not prepared to lose.

Bogeme is currently running on Base Sepolia testnet. Testnet USDC has no real-world value; balances and history shown on the platform reflect testnet state and will not automatically migrate when mainnet is enabled.

7. How to Verify On-Chain Yourself

  • Open the contract address on Basescan to inspect verified code and the recent event log (DirectDonation, TipSent, SubscriptionPaid, PostUnlocked, ContentPurchased...).
  • Open any payment transaction hash to see the actual USDC transfers in that operation: from your wallet to the recipient, and from your wallet to the treasury (the platform fee). Every money event carries the same gross / net / fee triple, so the transfer and the event can be cross-checked.
  • Always confirm you are paying USDC on Base (or Base Sepolia while the platform is on testnet) before signing.
  • Advanced: match the event's topic0 and the indexed payer / recipient addresses against the transfer logs in the same transaction.

This page reflects the current deployment. Values are read from contracts/deployment-info.json and are updated whenever the contract is redeployed or upgraded.