{
  "schemaVersion": "agf-agent-v1",
  "name": "Agentic Forge",
  "symbol": "AGF",
  "status": "mainnet-deployed-runtime-gated",
  "version": "agf-runtime-r2-20261108",
  "homepage": "https://agff.fun/",
  "network": {
    "chainId": 56,
    "chainIdHex": "0x38",
    "name": "BNB Smart Chain",
    "nativeCurrency": {
      "symbol": "BNB",
      "decimals": 18
    }
  },
  "apiVersion": "agf-public-v1",
  "apiBase": "/api/agf/v1",
  "skill": "/skill.md",
  "executionReference": "/references/ai-execution.md",
  "apiReference": "/references/api-guide.md",
  "actions": {
    "mintA": {
      "spec": "/actions/mintA.json",
      "enabledBy": "/api/agf/v1/state#data.actionsEnabled.mintA"
    },
    "mintBCurve": {
      "spec": "/actions/mintBCurve.json",
      "enabledBy": "/api/agf/v1/state#data.actionsEnabled.mintBCurve"
    },
    "mintBCrit": {
      "spec": "/actions/mintBCrit.json",
      "enabledBy": "/api/agf/v1/state#data.actionsEnabled.mintBCrit"
    },
    "claimA": {
      "spec": "/actions/claimA.json",
      "enabledBy": "/api/agf/v1/state#data.actionsEnabled.claimA"
    },
    "claimB": {
      "spec": "/actions/claimB.json",
      "enabledBy": "/api/agf/v1/state#data.actionsEnabled.claimB"
    },
    "settleCrit": {
      "spec": "/actions/settleCrit.json",
      "enabledBy": "/api/agf/v1/state#data.actionsEnabled.settleCrit"
    },
    "withdrawLP": {
      "spec": "/actions/withdrawLP.json",
      "enabledBy": "/api/agf/v1/state#data.actionsEnabled.withdrawLP"
    }
  },
  "actionsEnabledSource": {
    "url": "/api/agf/v1/state",
    "path": "data.actionsEnabled",
    "rule": "Always fetch fresh before proposing or preparing a transaction. No static enabled flag is authoritative."
  },
  "contracts": {
    "token": "0x9a73f266C61Da7c27771243Bd0c38cA8102Bac6e",
    "minter": "0x62174023588ca083A17e4691FCf7324d76A1d05C",
    "venue": "0x0dA97472EDeA0Ab82AF97Cc8FA349bF9481B2c78",
    "randomness": "0x7CA5C9f5f6b1425C07a3343c0B32e660b1F091BD",
    "taxProcessor": "0x82c2e7E58Eee624D2E992d55E23fdFfF452D2c88",
    "pair": "0x317a8e7a882e919b8c108b53a2dd2e814042cfb0",
    "registry": "0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F",
    "router": "0x10ED43C718714eb63d5aA57B78B54704E256024E",
    "wrappedNative": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",
    "vrfWrapper": "0x471506e6ADED0b9811D05B8cAc8Db25eE839Ac94"
  },
  "abis": {
    "token": {
      "url": "/abi/AGFToken.json",
      "sha256": "1ae37203176756f4ac16cfbcbd8ed2c12296b0c81755e253c47ea84397c1fb4a"
    },
    "minter": {
      "url": "/abi/AGFMinter.json",
      "sha256": "d324b8893d3f65725d9b319fc06d437bfa6a8d2899f4297c2a1c09c23474d0c8"
    },
    "venue": {
      "url": "/abi/AGFVenue.json",
      "sha256": "580c7e2c0b77471cfca2326a97072f3615d89c64cd4a61b059b249ca1c5e1534"
    },
    "randomness": {
      "url": "/abi/AGFRandomness.json",
      "sha256": "78ca639acefdd93d6aeba500abe15a91fcec7a474311ce05661d3d8ea13b43c7"
    },
    "taxProcessor": {
      "url": "/abi/AGFTaxProcessor.json",
      "sha256": "4666510da337d1e44e9132e4d0270a9a3117aae6539a16a5de82a4169f16ed07"
    }
  },
  "runtimeCodeKeccak256": {
    "token": "0xa4c08d813a446e4c4b73a22939ffbeb488d7b9119839bf8a0eb4b065c24a07aa",
    "minter": "0x1cb93bd343c1b5443047acfdda465f9837a5d4f51d40c6b9709fb0e64895062e",
    "venue": "0x3b09fc72591d4ac33be82cbc1cba10e81fdd9d21637004eab10e95199fc4a259",
    "randomness": "0x2cfa1f6f0375375b07faacff7720640e4679867bbe3b69e563bebcde9161a3f6",
    "taxProcessor": "0x4582081531dea82877abbc30dc73466d8128e51fd190dd53cc3fb16047dae463"
  },
  "verification": {
    "provider": "Sourcify",
    "creationAndRuntime": "exact",
    "links": {
      "token": "https://repo.sourcify.dev/56/0x9a73f266C61Da7c27771243Bd0c38cA8102Bac6e",
      "minter": "https://repo.sourcify.dev/56/0x62174023588ca083A17e4691FCf7324d76A1d05C",
      "venue": "https://repo.sourcify.dev/56/0x0dA97472EDeA0Ab82AF97Cc8FA349bF9481B2c78",
      "randomness": "https://repo.sourcify.dev/56/0x7CA5C9f5f6b1425C07a3343c0B32e660b1F091BD",
      "taxProcessor": "https://repo.sourcify.dev/56/0x82c2e7E58Eee624D2E992d55E23fdFfF452D2c88"
    },
    "scope": "Source-bytecode match, not an independent security audit."
  },
  "wallet": {
    "provider": "player-owned official Binance Agentic Wallet",
    "websiteLoginRequired": false,
    "websiteCookieRequired": false,
    "websiteQRRequired": false,
    "officialPreflightRequired": true,
    "developerModeRequiredForContractCall": true,
    "officialSkill": "https://github.com/binance/binance-skills-hub/blob/main/skills/binance-web3/binance-agentic-wallet/SKILL.md",
    "reviewedSkillVersion": "1.15.0",
    "minimumCLIVersion": "1.12.0",
    "cliPreview": "baw contract-call preview --binanceChainId 56 --from <transaction.from> --to <transaction.to> --value <transaction.value in integer wei> --inputData <transaction.data> --json",
    "cliExecute": "baw contract-call execute --requestId <successful preview requestId> --json",
    "executeOnlyAfterUserConfirmation": true,
    "backendCanSignOrBroadcast": false,
    "optionalWebsiteAuthentication": {
      "provider": "official Binance Agentic Wallet QR",
      "apiBase": "/api/agf-wallet/v1",
      "scope": "authentication_and_read_only_account_display",
      "requiredForExternalAI": false,
      "browserFinancialExecutor": false
    }
  },
  "identity": {
    "newMint": "valid .ai Agent ID: registry balance, handle and owner round trip must agree",
    "secondaryTrading": "ordinary wallets allowed once marketOpen",
    "claimsAndLPExit": "do not require current identity or an open new-Mint gate",
    "readOnlyAddressLookupIsLogin": false
  },
  "rules": {
    "noMines": true,
    "noIndependentStakingPool": true,
    "noHourlyBNBDividends": true,
    "sharePriceWei": "2000000000000000",
    "dailyBaseQuota": {
      "A": "5",
      "B_curve_plus_B_crit": "5"
    },
    "perValidReferral": {
      "A": "1",
      "B": "1"
    },
    "maxBatch": "10",
    "quotaAccounting": "max(address usage, identity usage), UTC day; B curve and crit share B quota",
    "epochs": {
      "size": "60000",
      "count": "15",
      "totalShares": "900000",
      "baseFirstEpochWei": "2160000000000000000000",
      "halving": "BASE0 >> epochIndex, for each share; crossing boundary splits"
    },
    "A": {
      "principalDelaySeconds": "86400",
      "reward": "epoch base a, claimed with original BNB principal"
    },
    "B": {
      "principalSplit": "half buys AGF, half pairs actual LP",
      "rewardVestingSeconds": "432000",
      "LPUnlockSeconds": "1209600",
      "LPExit": "actual tokens plus BNB, principal not guaranteed; reward claim is separate"
    },
    "curve": {
      "reward": "a+a*m",
      "extraMultiplierMax": "5",
      "formula": "min(5,(epochTotal+1000)/(epochB+200),budgetPacing)",
      "at": "successful Mint, recalculated per share"
    },
    "crit": {
      "reward": "a+a*extra",
      "extraMultiplier": [
        2,
        3,
        5,
        8,
        15
      ],
      "probabilityBps": [
        2000,
        2000,
        4000,
        1500,
        500
      ],
      "meanExtra": "4.95",
      "meanTotal": "5.95a",
      "replacesCurve": true,
      "VRFFeePaidBy": "separately funded randomness contract, never added to player principal",
      "hardMaxVRFFeeWei": "100000000000000"
    },
    "token": {
      "decimals": 18,
      "capWei": "2100000000000000000000000000",
      "sharedRewardCapWei": "1974000000000000000000000000",
      "initialLPWei": "21000000000000000000000000",
      "treasuryAllocationWei": "105000000000000000000000000"
    },
    "initialPoolOpenGate": {
      "minBNBWei": "7000000000000000000",
      "minAGFWei": "21000000000000000000000000",
      "lpTotalSupplyGreaterThan": "1000"
    },
    "taxBps": {
      "buy": "200",
      "sell": "200",
      "protocolLP": "100",
      "treasury": "100"
    },
    "taxAccounting": "collected as AGF; processing creates BNB/LP; claimTreasury pays fixed treasury; no volume*1% cash promise",
    "protocolLPRecipient": "0x000000000000000000000000000000000000dEaD",
    "devPoolTaxExempt": true,
    "initialLPAndProtocolLPAreSeparate": true
  },
  "treasury": "0xf67a75AA8B8045e2407cE0aBD4a5149227A528d9",
  "dev": "0xAa6519A72e3B56Bf0E2F5DE660fEbFC46Fb203b1",
  "referral": {
    "read": "/api/agf/v1/account?address=<own address>",
    "nameField": "data.inviteName",
    "link": "<verified homepage>/?ref=<URL-encoded verified .ai name>",
    "fragment": "#mint is optional UI navigation only",
    "bind": "first successful A/B Mint only; no cash/token rebate; not a signature or login"
  },
  "transactionValidation": {
    "target": "contracts.minter",
    "chainId": 56,
    "positiveOutputFloorsRequired": true,
    "sortedUniqueClaimIds": "1..50 numerically sorted",
    "expiry": "read prepare expiresAt/deadline; expired output must be replaced, never extended locally",
    "gas": "wallet-estimated and confirmed separately; API gasEstimate is not a wallet fee authorization",
    "approvalOrPermitNeeded": false,
    "noAutomaticResend": true,
    "gasVRFConsistency": {
      "action": "mintBCrit",
      "gasPriceSource": "prepare.data.gasPriceWei",
      "quotedFeeSource": "prepare.data.summary.randomFeeWei",
      "protectedFeeCeilingSource": "prepare.data.summary.limits.maxVRFFeeWei",
      "wrapperUsesActualTxGasPrice": true,
      "quotedFeeMarginBps": "2000",
      "hardMaxFeeWei": "100000000000000",
      "walletPreviewMustVerifyGasPriceCompatibility": true,
      "onUnverifiableOrChangedGas": "stop and refresh quote, prepare and official wallet preview; never execute an incompatible preview",
      "doNotEditMaxVRFFeeOrAttachExtraPayment": true,
      "reviewedCLIGasPriceFlagAvailable": false
    }
  },
  "unsupported": [
    "mine purchase/listing/transfer",
    "independent stake/unstake",
    "hourly dividend claim",
    "admin openTrading/setMintPaused/setCritPaused",
    "arbitrary recipient/calldata/value via prepare",
    "backend signature or broadcast"
  ],
  "dataPolicy": {
    "amounts": "uint256/wei/IDs/shares/times are decimal strings; use BigInt or exact integers",
    "unknown": "null or explicit error, never a fabricated zero",
    "chainEvents": "confirmed Mint/AgentSeen/CritSettled only; pending random outcomes are not realized rewards",
    "freshness": "stop financial preparation on stale/unavailable state, identity failure for new Mint, or failed simulation"
  },
  "publicReferences": [
    "https://developers.binance.com/en/docs/products/agentic-wallet/welcome",
    "https://github.com/binance/binance-skills-hub/blob/main/skills/binance-web3/binance-agentic-wallet/references/external-sign.md",
    "https://docs.chain.link/vrf/v2-5/supported-networks",
    "https://developer.pancakeswap.finance/contracts/v2/addresses"
  ],
  "uiVersion": "agf-clean-header-r17-20261109",
  "social": {
    "x": "https://x.com/Agentic_Forge"
  }
}
