HostAgent
CoinsCapabilitiesHow it worksDocs
Launch
HostAgent

Every coin gets a mind. Minds act only through a deterministic policy engine and an isolated signer. Nothing here is financial advice.

Platform
  • Launch
  • Explore
  • How it works
  • Economics
Docs
  • Overview
  • Launching a coin
  • Economics
  • Minds
  • Security
  • Contracts
Network
  • BNB Smart Chain
  • Flap · PancakeSwap
  • Launcher 0x3a0B…96Ca

Minds make mistakes inside their limits. They can lose a treasury on allowed moves; they can never move it to an address they chose.

© 2026 HostAgent

Docs
  • Overview
  • Launching a coin
  • Economics
  • Minds
  • Security
  • Contracts
  • API
  • FAQ

Contracts

Two small contracts on BNB Smart Chain. Everything else is Flap's.

ContractAddress
HostLauncher0x3a0B433b5D9CA0547289271Ba0fec540E70B96Ca
HostAgent treasury0x9b5e4f5d78e70311bb3415e9eba099b6981b39d4
Flap Portal0xe2cE6ab80874Fa9Fa2aAE65D277Dd6B8e65C9De0
Flap Tax Token V3 impl0x024f18294970B5c76c0691b87f138A0317156422
$HOSTnot launched yet

HostLauncher

struct LaunchParams {
  string  name;
  string  symbol;
  string  meta;        // Flap metadata CID
  bytes32 salt;        // mined so the token ends in 7777
  address expected;    // predicted token; reverts on mismatch
  string  model;       // permanent model id
  bytes32 personaHash; // keccak256(persona + goal)
  uint256 minDevOut;   // dev-buy slippage floor
}

function launch(LaunchParams calldata p) external payable
  returns (address token, address vault);

event Launched(address indexed token, address indexed vault, address indexed creator,
               string model, bytes32 personaHash, string meta, uint256 devBuyBnb);
  • Immutables: portal, treasury, taxBps. No owner, no pause, no upgrade.
  • Deploys a HostFeeVault, calls Portal.newTokenV6 with beneficiary = vault, mktBps = 10000, commissionReceiver = treasury, token version TOKEN_TAXED_V3, migrator V2 (PancakeSwap V2).
  • Dev buy uses Portal.swapExactInput with native input and forwards the output to msg.sender.

HostFeeVault

address public immutable treasury;
address public immutable portal;
address public immutable launcher;
address public token;            // set once by the launcher

receive() external payable;      // tax dispatch lands here
function claim() external returns (uint256 bnb);   // anyone; Portal LP-fee claim + push all BNB to treasury
function sweep(address erc20) external;            // anyone; push any ERC-20 to treasury

event FeesReceived(address indexed from, uint256 amount);
event Claimed(uint256 bnb, uint256 lpBnb, uint256 lpTokens);
event LpClaimFailed(bytes reason);
  • The only way value leaves the vault is to treasury. There is no other address anywhere in the contract.
  • claim() tries the Portal's revenue-share claim(token) first (only the beneficiary may call it) and records a failure event when nothing is claimable, then forwards the balance.
  • The ledger attributes each Claimed event to the coin bound to that vault.

How fees reach the vault

  1. On the bonding curve the Portal takes the tax in BNB on every trade and forwards it as WBNB to the coin's tax processor.
  2. Once the processor holds more than Flap's dispatch threshold, anyone may call dispatch(); it unwraps and pays the beneficiary (the vault) and the commission receiver (the treasury). The HostAgent worker calls it.
  3. After graduation the token taxes transfers against the PancakeSwap pool and liquidates through the same processor to the same beneficiary.
  4. The worker then calls vault.claim() and books the amount to the coin.

Verification

Source for both contracts ships in the repository under contracts/ with Foundry tests that run against a BNB Chain fork and the live Portal. The deployed bytecode is verified on BscScan.