Overview
Thetenderly contracts push command uploads your deployed smart contracts to your Tenderly project. Once pushed, contracts are actively monitored and can be debugged using Tenderly’s advanced tools.
This command is intended for contracts deployed to public networks. For local development, consider using Tenderly DevNets or the Hardhat plugin.
Usage
Prerequisites
Flags
A comma-separated list of network IDs to push. Only contracts deployed to these networks will be uploaded.Common Network IDs:
1- Ethereum Mainnet5- Goerli Testnet11155111- Sepolia Testnet137- Polygon Mainnet80001- Polygon Mumbai56- BSC Mainnet42161- Arbitrum One10- Optimism Mainnet
Optional tag for filtering and referencing pushed contracts. Tags help organize and identify contract deployments.Tags are useful for:
- Version tracking
- Environment identification (staging, production)
- Deployment grouping
The slug of a specific project to push contracts to. Use this when pushing to a single project from a multi-project configuration.
Configuration
Single Project Setup
Configure yourtenderly.yaml file with a single project:
tenderly.yaml
Multiple Projects Setup
Push contracts to multiple projects simultaneously by defining aprojects map:
tenderly.yaml
Examples
Basic Push
Push all deployed contracts from the current project:Push Specific Networks
Push only contracts deployed to Ethereum Mainnet and Polygon:Push with Tag
Push contracts with a version tag for tracking:Push to Specific Project
When you have multiple projects configured, push to only one:Combined Flags
Push specific networks with a tag to a specific project:What Gets Pushed
The CLI analyzes your build directory and pushes:- Deployed contracts: Contracts with network deployment information
- Library contracts: Non-deployed contracts used as libraries
- Source code: Solidity source files for verification
- ABI and bytecode: Contract interfaces and compiled code
- Compiler metadata: Compiler version and settings
Output
Successful push displays:Troubleshooting
No contracts detected in build directory
No contracts detected in build directory
Cause: Build artifacts don’t exist or are in the wrong location.Solution:
- Run your framework’s compile command
- Ensure the build directory exists
- Check that contracts were actually deployed
No migrated contracts detected
No migrated contracts detected
Cause: Contracts haven’t been deployed to any network.Solution:
- Deploy your contracts to a network first
- Ensure deployment was successful
- Check that network information is in build artifacts
Some contracts weren't pushed
Some contracts weren't pushed
Cause: Contracts may be deployed to unsupported networks.Solution:
- Check the network IDs in the error message
- Verify the networks are supported by Tenderly
- Ensure deployment addresses are correct
Project configuration not found
Project configuration not found
Cause: Invalid project slug or missing configuration.Solution:
- Run
tenderly initto set up configuration - Verify project slug in
tenderly.yaml - Check that the project exists in your Tenderly dashboard
Best Practices
- Use tags for organization: Tag deployments by version, environment, or feature
- Filter networks: Use
--networksto push only relevant deployments - Multi-project workflows: Configure multiple projects for different environments
- Verify after push: Check the Tenderly dashboard to confirm contracts are visible
- Combine with CI/CD: Automate contract pushing in deployment pipelines
Related Commands
tenderly contracts verify- Verify contracts without active monitoringtenderly contracts remove- Remove contracts from Tenderlytenderly init- Initialize Tenderly project configuration