Install
$ agentstack add skill-0gfoundation-0g-agent-skills-deploy-contract ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ● Filesystem access Used
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Deploy Contract to 0G Chain
Metadata
- Category: chain
- SDK:
ethers^6.13.0, Hardhat or Foundry - Activation Triggers: "deploy contract", "Solidity", "0G Chain", "deploy smart contract"
Purpose
Deploy Solidity smart contracts to 0G Chain using Hardhat, Foundry, or ethers v6 directly. All contracts must be compiled with evmVersion: "cancun".
Prerequisites
- Node.js >= 18
- Hardhat or Foundry installed
- Funded wallet with 0G tokens
.envwithPRIVATE_KEY,RPC_URL
Quick Workflow
- Write Solidity contract
- Configure compiler with
evmVersion: "cancun" - Compile contract
- Deploy to 0G testnet
- Verify on block explorer (optional)
Core Rules
ALWAYS
- Set
evmVersion: "cancun"in compiler configuration - Use ethers v6 syntax (NOT v5)
- Test on testnet before deploying to mainnet
- Wait for deployment confirmation (
waitForDeployment()) - Store deployed contract addresses
NEVER
- Use any evmVersion other than
"cancun"for 0G Chain - Use ethers v5 patterns (
.deployed(),contract.address, etc.) - Deploy to mainnet without testnet testing
- Hardcode private keys
Code Examples
Hardhat Deployment
// contracts/MyContract.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
contract MyContract {
uint256 public value;
address public owner;
event ValueChanged(uint256 newValue);
constructor(uint256 _initialValue) {
value = _initialValue;
owner = msg.sender;
}
function setValue(uint256 _value) external {
value = _value;
emit ValueChanged(_value);
}
}
// scripts/deploy.ts
import { ethers } from 'hardhat';
async function main() {
const [deployer] = await ethers.getSigners();
console.log('Deploying with:', deployer.address);
const balance = await deployer.provider.getBalance(deployer.address);
console.log('Balance:', ethers.formatEther(balance), '0G');
const Contract = await ethers.getContractFactory('MyContract');
const contract = await Contract.deploy(42);
await contract.waitForDeployment();
const address = await contract.getAddress();
console.log('Deployed to:', address);
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
# Compile
npx hardhat compile
# Deploy to testnet
npx hardhat run scripts/deploy.ts --network 0g-testnet
# Verify
npx hardhat verify --network 0g-testnet 42
Foundry Deployment
# Compile
forge build
# Deploy
forge create src/MyContract.sol:MyContract \
--rpc-url https://evmrpc-testnet.0g.ai \
--private-key $PRIVATE_KEY \
--constructor-args 42
# Verify
forge verify-contract src/MyContract.sol:MyContract \
--chain-id 16602 \
--verifier-url https://chainscan-galileo.0g.ai/api
Direct ethers v6 Deployment
import { ethers, ContractFactory } from 'ethers';
import * as fs from 'fs';
import 'dotenv/config';
async function deploy() {
const provider = new ethers.JsonRpcProvider(process.env.RPC_URL);
const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);
// Load compiled artifact
const artifact = JSON.parse(
fs.readFileSync('./artifacts/contracts/MyContract.sol/MyContract.json', 'utf8'),
);
const factory = new ContractFactory(artifact.abi, artifact.bytecode, wallet);
const contract = await factory.deploy(42);
await contract.waitForDeployment();
const address = await contract.getAddress();
console.log('Deployed to:', address);
return { address, abi: artifact.abi };
}
Deploy with Constructor Arguments
// Complex constructor
const contract = await Contract.deploy(
'My Token', // string name
'MTK', // string symbol
ethers.parseEther('1000000'), // uint256 initialSupply
wallet.address, // address owner
);
await contract.waitForDeployment();
Anti-Patterns
// BAD: Missing evmVersion
// hardhat.config.ts
solidity: '0.8.24'; // WRONG — needs cancun setting
// BAD: ethers v5 deployment check
await contract.deployed(); // v5! Use waitForDeployment()
// BAD: Getting address v5 style
console.log(contract.address); // v5! Use await contract.getAddress()
// BAD: Deploying without balance check
await Contract.deploy(42); // May fail with insufficient funds
Common Errors & Fixes
| Error | Cause | Fix | | ------------------------------------------- | ----------------------- | -------------------------- | | invalid opcode | Wrong evmVersion | Set evmVersion: "cancun" | | insufficient funds | Wallet empty | Fund from faucet | | nonce too low | Pending transaction | Wait or increment nonce | | contract creation code storage out of gas | Complex contract | Increase gas limit | | cannot estimate gas | Constructor will revert | Check constructor args |
Related Skills
- [Interact Contract](../interact-contract/SKILL.md) — interact with deployed contracts
- [Scaffold Project](../scaffold-project/SKILL.md) — project setup
- [Storage + Chain](../../cross-layer/storage-plus-chain/SKILL.md) — on-chain references
References
- [Chain Patterns](../../../patterns/CHAIN.md)
- [Network Config](../../../patterns/NETWORK_CONFIG.md)
- Hardhat Docs
- Foundry Docs
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: 0gfoundation
- Source: 0gfoundation/0g-agent-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.