> ## Documentation Index
> Fetch the complete documentation index at: https://docs.codex.io/llms.txt
> Use this file to discover all available pages before exploring further.

# onSimulateTokenContract

> Live-streamed published analysis results for a token, across all simulation IDs. This is not a complete request-status stream: use getSimulateTokenContractResults to check pending, failed or indeterminate outcomes.

<div data-generated>
  ## GraphQL

  ```
  type Subscription {
    # Requires a Growth or Enterprise plan.
    onSimulateTokenContract(
      contractAddress: String
      networkId: Int!
      simulationId: String
    ): SimulateTokenContractResult!
  }

  enum SimulateTokenContractResultStatusEnum {
    SUCCESS
    FAILURE
    PENDING
  }

  enum AnalysisVerdictEnum {
    TRADEABLE
    HONEYPOT
    INDETERMINATE
  }

  type SimulateTokenErrorsType {
    tokenSymbolError: String
    decimalsError: String
    tokenNameError: String
    totalSupplyError: String
    canTransferOwnershipError: String
    canRenounceOwnershipError: String
  }

  type SimulateDeployErrorsType {
    deployError: String
    tokenMintedToDeployerError: String
  }

  type SimulateContractBalanceErrorsType {
    tokenContractTokenBalanceError: String
    tokenContractEthBalanceError: String
  }

  type SimulateLiquidityErrorsType {
    lpTotalSupplyError: String
    preLiquidityEnableTradingError: String
    postLiquidityEnableTradingError: String
    addLiquidityError: String
  }

  type SimulateTransferErrorsType {
    tokenContractApprovalError: String
    tokenTransferredToContractError: String
    userApprovalError: String
  }

  enum SimulateTokenContractBuySellErrorEnum {
    INSUFFICIENT_OUTPUT_AMOUNT
    INSUFFICIENT_LIQUIDITY
    TRANSFER_FAILED
    UNKNOWN_ERROR
  }

  type SimulateSwapErrorsType {
    buyError: String
    buyErrorEnum: SimulateTokenContractBuySellErrorEnum
    sellError: String
    sellErrorEnum: SimulateTokenContractBuySellErrorEnum
  }

  type SimulateOwnerErrorsType {
    ownerAddressError: String
    ownerTokenBalanceError: String
    ownerEthBalanceError: String
  }

  type SimulateCreatorErrorsType {
    creatorTokenBalanceError: String
    creatorEthBalanceError: String
  }

  type SimulateTokenContractErrors {
    simulatorError: String
    tokenErrors: SimulateTokenErrorsType!
    deployErrors: SimulateDeployErrorsType!
    contractBalanceErrors: SimulateContractBalanceErrorsType!
    liquidityErrors: SimulateLiquidityErrorsType!
    transferErrors: SimulateTransferErrorsType!
    swapErrors: SimulateSwapErrorsType!
    ownerErrors: SimulateOwnerErrorsType!
    creatorErrors: SimulateCreatorErrorsType!
  }

  type SimulateTokenType {
    contractAddress: String!
    tokenSymbol: String
    decimals: Int
    tokenName: String
    totalSupply: String
    canTransferOwnership: Boolean
    canRenounceOwnership: Boolean
    isOwnerRenounced: Boolean
  }

  type SimulateDeployType {
    deploySuccess: Boolean
    tokenMintedToDeployer: String
  }

  type SimulateContractBalanceType {
    tokenContractTokenBalance: String
    tokenContractEthBalance: String
  }

  type SimulateLiquidityType {
    pairAddress: String
    lpTotalSupply: String
    preLiquidityEnableTradingCall: String
    preLiquidityEnableTradingSuccess: Boolean
    preLiquidityEnableTradingSupportsTransfer: Boolean
    liquiditySetByPreLiquidityOpenTradingCall: Boolean
    postLiquidityEnableTradingCall: String
    postLiquidityEnableTradingSuccess: Boolean
    addLiquiditySuccess: Boolean
  }

  type SimulateTransferType {
    tokenContractApprovalSuccess: Boolean
    tokenTransferredToContractSuccess: Boolean
    userApprovalSuccess: Boolean
  }

  type SimulateSwapType {
    buySuccess: Boolean
    buyTax: String
    buyGasUsed: String
    maxBuyAmount: String
    sellSuccess: Boolean
    sellTax: String
    sellGasUsed: String
    maxSellAmount: String
  }

  type SimulateOwnerType {
    ownerAddress: String
    ownerTokenBalance: String
    ownerEthBalance: String
  }

  type SimulateCreatorType {
    creatorAddress: String
    creatorTokenBalance: String
    creatorEthBalance: String
  }

  type SimulateTokenContractResult {
    id: String!
    sortKey: String!
    contractHashKey: String!
    uuidHashKey: String!
    blockNumber: String!
    networkId: Int!
    analysisType: Int!
    timestamp: Int!
    status: SimulateTokenContractResultStatusEnum!
    verdict: AnalysisVerdictEnum
    verdictReason: String
    errors: SimulateTokenContractErrors!
    uuid: String!
    token: SimulateTokenType!
    deploy: SimulateDeployType!
    contractBalance: SimulateContractBalanceType!
    liquidity: SimulateLiquidityType!
    transfer: SimulateTransferType!
    swap: SimulateSwapType!
    owner: SimulateOwnerType!
    creator: SimulateCreatorType!
  }
  ```
</div>
