Skip to content

DappsAtlas index · 14,224 dApps

DappsAtlas

Blockchain · How-to

How to Build Dapps on Telos EVM in 2026

Telos EVM lets Solidity developers reuse familiar Ethereum tooling on a low-fee chain. This guide walks through setup, contract work, testnet deployment, frontend connection, and the checks to run before mainnet.

By the DappsAtlas editorial team · Updated

Illustration for How to Build Dapps on Telos EVM in 2026

What Telos EVM is and why build on it

Telos EVM is an Ethereum Virtual Machine environment on the Telos network. It is built for developers who want to run Solidity smart contracts and use familiar Ethereum tools while paying low transaction fees.

For a developer, the main appeal is compatibility. Contracts written for the EVM can usually be compiled with the same compilers, tested with the same frameworks, and interacted with through the same wallet and library patterns used on Ethereum.

Before you start, decide what kind of app you are building. Common choices include token contracts, simple marketplaces, lending or staking pools, and apps that read onchain data through a frontend. Each has different security needs, so it helps to pick a narrow first project.

Also check the official Telos documentation for the current state of the network, its supported features, and any chain-specific differences. Treat older tutorials with caution, because network endpoints, tooling versions, and recommended practices change over time.

What tools and accounts you need first

You do not need a specialized Telos SDK to begin. A typical EVM development setup includes the following:

  • Node.js, installed from the official site using a current long-term support release
  • A code editor with Solidity support
  • A package manager such as npm or pnpm
  • A browser wallet extension that supports custom EVM networks
  • Git, for version control and project templates

You will also need a development framework. Hardhat and Foundry are the two most common choices. Hardhat uses JavaScript or TypeScript for scripts and tests, while Foundry uses Solidity-based tests and a fast command-line toolchain. Either works with EVM chains.

For learning, pick one framework and use it consistently. Install the latest versions from each project's official documentation. Keep a notes file with the exact versions you used, since later updates can change default settings or command names.

How to set up a project with Hardhat or Foundry

Create a project folder and initialize it with your chosen framework. For Hardhat, the usual path is to install the package in an empty folder and run its project initializer, which creates a contracts folder, a test folder, a scripts folder, and a configuration file.

For Foundry, install the toolchain and run the project creation command. It produces a src folder for contracts, a test folder for Solidity tests, and a foundry.toml configuration file.

Keep your project under version control from the first commit. Add a.gitignore entry for environment files, private keys, and build artifacts. Never commit a file that contains a seed phrase or private key.

Use environment variables for secrets. A common pattern is a.env file that is excluded from Git, with a template file such as.env.example listing the variable names without values. Load these values in your configuration rather than writing them directly into scripts.

How to add the Telos EVM network to your tools

Your tools need to know which network to talk to. Add a network entry to your framework configuration that includes a name, the RPC URL, the chain ID, and the account source. Get these values from the official Telos documentation and confirm them against a block explorer.

For a wallet, add the network manually with the same RPC URL, chain ID, currency symbol, and block explorer URL. Send a small test transaction before relying on the connection.

Separate testnet and mainnet configurations. Give each a distinct name so you do not deploy to mainnet by accident. A good habit is to make the deploy script require an explicit network flag and print the chain ID before sending anything.

When you update an RPC endpoint, record the change in your project notes. If a provider rate-limits requests, you may need a different endpoint. Check the documentation for approved providers rather than relying on a random public URL.

How to write and test your first smart contract

Start with a small contract, such as a simple counter, a basic token, or a storage example. Write the contract in Solidity, then compile it. Read the compiler warnings and fix them rather than ignoring them.

Write tests before you deploy anything. Good tests cover the normal path, the failure cases, and access control. For example, check that a non-owner cannot call an admin function, that balances update correctly after a transfer, and that invalid inputs revert.

Common mistakes to avoid include:

  • Trusting external calls to return honest data
  • Forgetting to check return values from token transfers
  • Writing loops over unbounded arrays that could run out of gas
  • Using tx.origin for authentication
  • Leaving admin functions without clear ownership rules

Use the standard libraries from OpenZeppelin for access control and token standards instead of writing these from scratch. Review their documentation for the version you install, since APIs can change between major releases.

How to deploy to the Telos testnet

Before deploying to mainnet, use the Telos testnet. Obtain testnet tokens from an official faucet listed in the Telos documentation. Faucets have limits and may change, so check their current rules before you request funds.

Your deployment script should do the following:

  • Confirm the network and chain ID
  • Check the deployer balance
  • Deploy the contract with clear constructor arguments
  • Print the deployed address and transaction hash
  • Save the address to a deployment file

After deployment, verify the source code on the block explorer if the explorer supports verification for Telos EVM. Verified source lets users read the code they are interacting with.

Record the compiler version, optimizer settings, and constructor arguments. You will need these for verification, upgrades, and incident response. Keep test deployments separate from any production addresses in your documentation.

How to connect a frontend to your contract

A frontend needs a library to talk to the chain. Two widely used options are ethers.js and viem. Both can connect to a wallet provider, read contract state, and send transactions. Choose one and follow its current documentation.

A basic connection flow looks like this:

  • Detect whether the user has an injected wallet
  • Ask the user to connect their account
  • Check that the wallet is on the expected chain ID
  • Offer a prompt to switch or add the Telos network if needed
  • Create a contract instance using the deployed address and the ABI

Split reads from writes. Reads can use a public RPC provider and do not need a wallet signature. Writes must go through the user's wallet, and the interface should show the transaction details and wait for a confirmation.

Handle errors clearly. Show the user when a transaction is rejected, when the wallet is on the wrong network, or when the contract reverts. Avoid showing raw error output directly to users, since it can be confusing.

How to read onchain data and index events

Reading one contract's state is simple with an RPC call. Apps that need history, lists of events, or aggregated data usually need an indexer. An indexer watches the chain, processes logs, and stores results in a database that your app can query quickly.

Envio is one example of an indexing platform that offers APIs for developers, but you must confirm it supports the chains you target before building on it. If you run your own indexer, you can write event handlers in TypeScript and store the data in a database of your choice.

For data that depends on prices, use an oracle service designed for that purpose. Pyth Network is one example of a price oracle provider. Confirm which feeds are available on the chain you use, since not every asset or network is supported.

When you need ecosystem context, such as which protocols are active on a chain, DefiLlama aggregates data for many networks. Use it as a reference, and check its current coverage for Telos directly.

Security checklist before you launch

Security review is part of development, not an optional step. Start with a checklist and run through it before each deployment:

  • Confirm which addresses have admin or upgrade powers
  • Use a multisig for any contract that controls funds
  • Limit the amount of value a new contract can hold during early launch
  • Add pause functions only if you have a clear process for using them
  • Review every external call for reentrancy risk
  • Check token approvals and encourage users to revoke unused ones

Get an independent code review for anything that holds user funds. Automated analysis tools can find common issues, but they do not replace a human review. Keep a record of findings and how you fixed them.

For your own wallets, store the seed phrase offline, use a hardware wallet where possible, and never share keys with a frontend or script. Be wary of phishing sites that copy your interface.

After launch, watch for unusual transactions, set up alerts, and publish a clear way for users to report problems. Keep an incident plan ready so you can act quickly.

Frequently asked questions

Do I need to learn a new language to build on Telos EVM?

Telos EVM runs the Ethereum Virtual Machine, so Solidity contracts and standard EVM libraries generally work with it. Your main changes are the network settings, the native token, and any chain-specific details in the official docs. Always test before assuming a contract or library behaves the same way.

Where should I find the current network settings?

Check the official Telos documentation for current RPC endpoints, chain IDs, block explorer addresses, and faucet links. Those details can change, so copy them from the source rather than from older tutorials. Verify the chain ID in your wallet before signing anything.

How do I protect the wallet I use for deployment?

Keep the funds you use for development separate from your main holdings, and use a test wallet on testnet. Never paste a seed phrase or private key into a website, script, or chat. Hardware wallets or multisig setups are safer for any wallet that controls a mainnet contract.

Can I use existing indexing and analytics tools with a Telos app?

Yes. Indexers such as Envio and general analytics sites such as DefiLlama can help you read data, but support for a specific chain varies. Check each provider's supported-chain list before you build on it. If a service does not list Telos, you can still read contract events through a standard RPC endpoint.

What should I do before launching on mainnet?

Start with a small, clearly scoped contract, write thorough tests, and get an independent review for anything that holds user funds. Use the testnet for a full dry run, then deploy with a small amount first. Monitor the contract after launch and have a plan for pausing or upgrading it.

Mentioned in this guide

dApps in this guide

Envio logo

Envio

Developer Tools

Score 8.0 out of 10

Envio is a blockchain indexing and data platform offering HyperIndex APIs and fast HyperSync raw data access for developers across 81+ chains.

Ethereum · Solana · BNB Chain +4
Defillama logo

Defillama

Analytics

Score 8.0 out of 10

DefiLlama is a data site that aggregates total value locked, trading volume and fees for DeFi protocols across many chains.

Pyth Network logo

Pyth Network

Infrastructure

Score 8.0 out of 10

Pyth Network is a first-party price oracle and market data provider for blockchain apps, trading venues and institutions, with its own PYTH token.

TVL $0Solana
Across logo

Across

Cross Chain Bridge

Score 8.0 out of 10

Across is an intent-based cross-chain bridge and swap protocol for moving tokens between Ethereum, rollups and other chains, with an API for apps.

TVL $15.5M−6.3%Ethereum · Arbitrum · Optimism +19
Common logo

Common

Privacy

Score 6.2 out of 10

Common is a non-custodial ZK privacy dapp on Arbitrum and Aleph Zero EVM that lets users shield funds and withdraw to a new, unlinkable wallet.

TVL $1.59K0.0%Arbitrum
Save logo

Save

Lending

Score 6.8 out of 10

Save, formerly Solend, is a Solana lending and borrowing protocol where users earn interest on deposits or borrow against collateral.

TVL $72.0M−6.1%Solana · Eclipse

Keep reading

Related guides

All blockchain guides

Blockchain · Best list

Best Injective dApps for DeFi, NFTs and More in 2026

Injective is a Layer-1 chain built for finance, so most of its dApps are trading, lending and derivatives venues, with NFTs and games as smaller areas. This guide explains how to judge which Injective dApps are worth using and how to check their current status.

Blockchain · Explainer

Gravity Chain Update Explained: L1, Identity, Parallel EVM

Gravity has moved from its Alpha Mainnet toward Gravity L1, its own layer-1 network, and its public materials describe onchain identity, parallel EVM execution and gigagas-level throughput. This guide explains what each term means, what the sources confirm, and how to check the current state of the network yourself.