---
title: "Create stream"
method: PUT
path: "/streams/evm"
tags: ["EVM Streams"]
---

# Create stream

`PUT /streams/evm`

Creates a new evm stream.

## Request body

- StreamsModelCreate
  - `webhookUrl` string, required — Webhook URL where moralis will send the POST request.
  - `description` string, required — A description for this stream
  - `tag` string — A user-provided tag that will be send along the webhook, the user can use this tag to identify the specific stream if multiple streams are present
  - `topic0` string[], nullable — An Array of topic0's in string-signature format ex: ['FunctionName(address,uint256)']
  - `allAddresses` boolean — Include events for all addresses (only applied when abi and topic0 is provided)
  - `includeNativeTxs` boolean — Include or not native transactions defaults to false
  - `includeContractLogs` boolean — Include or not logs of contract interactions defaults to false
  - `includeInternalTxs` boolean — Include or not include internal transactions defaults to false
  - `includeAllTxLogs` boolean — Include all logs if atleast one value in tx or log matches stream config
  - `getNativeBalances` GetNativeBalances[] — Include native balances for each address in the webhook
    - `selectors` string[], required
    - `type` 'tx' | 'log' | 'erc20transfer' | 'erc20approval' | 'nfttransfer' | 'internalTx', required
  - `abi` unknown
  - `advancedOptions` unknown
  - `chainIds` string[], required — The ids of the chains for this stream in hex Ex: ["0x1","0x38"]
  - `filterPossibleSpamAddresses` boolean — Indicator if it is a demo stream
  - `demo` boolean — Filter possible spam addresses
  - `triggers` StreamsTrigger[], nullable — triggers
    - `type` 'tx' | 'log' | 'erc20transfer' | 'erc20approval' | 'nfttransfer', required
    - `contractAddress` string, required
    - `inputs` union[]
      - union
        - string
        - unknown[]
          - unknown
    - `functionAbi` AbiItem, required — The abi to parse the log object of the contract
      - `anonymous` boolean
      - `constant` boolean
      - `inputs` AbiInput[]
        - `name` string, required
        - `type` string, required
        - `indexed` boolean
        - `components` AbiInput[]
        - `internalType` string
      - `name` string
      - `outputs` AbiOutput[]
        - `name` string, required
        - `type` string, required
        - `components` AbiOutput[]
        - `internalType` string
      - `payable` boolean
      - `stateMutability` string
      - `type` string, required
      - `gas` number, double
    - `topic0` string
    - `callFrom` string

## Response `200`

Ok

- StreamsModel
  - `webhookUrl` string, required — Webhook URL where moralis will send the POST request.
  - `description` string, required — A description for this stream
  - `tag` string — A user-provided tag that will be send along the webhook, the user can use this tag to identify the specific stream if multiple streams are present
  - `topic0` string[], nullable — An Array of topic0's in string-signature format ex: ['FunctionName(address,uint256)']
  - `allAddresses` boolean — Include events for all addresses (only applied when abi and topic0 is provided)
  - `includeNativeTxs` boolean — Include or not native transactions defaults to false
  - `includeContractLogs` boolean — Include or not logs of contract interactions defaults to false
  - `includeInternalTxs` boolean — Include or not include internal transactions defaults to false
  - `includeAllTxLogs` boolean — Include all logs if atleast one value in tx or log matches stream config
  - `getNativeBalances` GetNativeBalances[] — Include native balances for each address in the webhook
    - `selectors` string[], required
    - `type` 'tx' | 'log' | 'erc20transfer' | 'erc20approval' | 'nfttransfer' | 'internalTx', required
  - `abi` unknown
  - `advancedOptions` unknown
  - `chainIds` string[], required — The ids of the chains for this stream in hex Ex: ["0x1","0x38"]
  - `filterPossibleSpamAddresses` boolean — Indicator if it is a demo stream
  - `demo` boolean — Filter possible spam addresses
  - `triggers` StreamsTrigger[], nullable — triggers
    - `type` 'tx' | 'log' | 'erc20transfer' | 'erc20approval' | 'nfttransfer', required
    - `contractAddress` string, required
    - `inputs` union[]
      - union
        - string
        - unknown[]
          - unknown
    - `functionAbi` AbiItem, required — The abi to parse the log object of the contract
      - `anonymous` boolean
      - `constant` boolean
      - `inputs` AbiInput[]
        - `name` string, required
        - `type` string, required
        - `indexed` boolean
        - `components` AbiInput[]
        - `internalType` string
      - `name` string
      - `outputs` AbiOutput[]
        - `name` string, required
        - `type` string, required
        - `components` AbiOutput[]
        - `internalType` string
      - `payable` boolean
      - `stateMutability` string
      - `type` string, required
      - `gas` number, double
    - `topic0` string
    - `callFrom` string
  - `id` string, uuid, required — Stringified UUIDv4. See [RFC 4112](https://tools.ietf.org/html/rfc4122)
  - `status` 'active' | 'paused' | 'error' | 'terminated', required — The stream status: [active] The Stream is healthy and processing blocks [paused] The Stream is paused and is not processing blocks [error] The Stream has encountered an error and is not processing blocks
  - `statusMessage` string, required — Description of current status of stream.
  - `updatedAt` string, date-time, required — Last Updated Date.
  - `amountOfAddresses` number, double, required — Amount of Addresses.

---

[API](https://skmtc.net/moralis/apis/auth-api.md) · [All operations](https://skmtc.net/moralis/apis/auth-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/moralis/auth-api/versions/f54aabf6dd91/schema)
