بنقرة واحدة
injective-evm-developer
Develop EVM smart contracts and dApps on Injective
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Develop EVM smart contracts and dApps on Injective
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Optimize AI API costs for agentic trading bots. Covers Anthropic token cost tracking, web search cost management, CoinGecko/Massive.com data sourcing, shared caching strategies, and per-user cost caps. Learned from real production data showing web search inflates costs 10-17x.
Use the Injective `injectived` CLI against a chain with consistent wallet, endpoint, and gas handling. Use the CLI map and reference docs to find commands and build transactions safely.
Detect breaking changes in Injective core between two tagged releases. For use in developer documentation and release notes.
Audit and report adherence to Injective's documentation standards
Create and operate an INJ faucet for initializing fresh Injective wallets. Sends a small amount of INJ via EVM to create on-chain accounts and provide gas for AuthZ grants. Handles the circular dependency where fresh wallets can't transact without gas but can't receive gas without an account. Pairs with injective-trading-autosign for zero-friction onboarding.
Build, review, or debug browser frontends that sign and broadcast Injective transactions with Keplr, Leap, MetaMask, CosmJS, @injectivelabs/sdk-ts, or CosmWasm execute messages. Use this whenever implementing Injective React/Vite/Next apps, wallet connect flows, swap-contract UIs, MsgExecuteContract, MsgBroadcaster, or when errors mention EthAccount, ethsecp256k1, invalid pubkey, account sequence, signer address, Keplr, Leap, or browser wallet signing.
| name | injective-evm-developer |
| description | Develop EVM smart contracts and dApps on Injective |
| activates_on | ["*.sol","hardhat.config.*","foundry.toml","*.ts","*.js"] |
| uses | ["injective-mcp-servers","solidity-hardhat-development","solidity-foundry-development","solidity-code-review","solidity-erc-standards","solidity-security-best-practices","solidity-gas-optimization","solidity-adversarial-analysis"] |
| license | MIT |
| metadata | {"author":"bguiz","version":"0.0.0"} |
Injective is a layer 1 blockchain that is simultaneously both EVM and Cosmos. Use this skill when building on Injective's EVM. It builds on a baseline of skills that apply to developing on any EVM network, and augments that with Injective specifics.
bank precompileexchange precompileSee for detailed list of user stories: ./references/user-stories.md
Their associated sample prompts: ./references/sample-prompts.md
0x) into the text field for "EVM address"inj) into the text field for "Wallet address"bank precompileAddress: 0x0000000000000000000000000000000000000064
Solidity interface exposed by the bank precompile: See ./assets/Bank.sol
The ABI for the bank precompile may be obtained by converting the interface above.
BankERC20 is a "base implementation for MultiVM Token Standard (MTS) token, which is designed to be extended: See ./assets/BankERC20.sol
bank precompileBankERC20payable./assets/FixedSupplyBankERC20.sol./assets/WINJ9.sol (used in wrapped INJ)Reference: https://docs.injective.network/developers-evm/bank-precompile.md
Note that all ./assets/*.sol files can be found in https://raw.githubusercontent.com/InjectiveLabs/solidity-contracts/refs/heads/master/src/*.sol
exchange precompileAddress: 0x0000000000000000000000000000000000000065
Solidity interface exposed by the exchange precompile: See ./assets/Exchange.sol
The ABI for the exchange precompile may be obtained by converting the interface above.
Reference: https://docs.injective.network/developers-evm/exchange-precompile.md
Note that all ./assets/*.sol files can be found in https://raw.githubusercontent.com/InjectiveLabs/solidity-contracts/refs/heads/master/src/*.sol
See: https://docs.injective.network/developers-evm/evm-integrations-cheat-sheet.md
Sample hardhat.config.js file for Injective EVM testnet: See ./assets/hardhat-testnet-config.js.
Sample script/deploy.js file for Injective Testnet. See ./assets/hardhat-deploy-script.js.
To verify a smart contract with the above configuration and constructor args,
create a constructor-args.js file, run the following command:
npx hardhat verify --force \
--constructor-args ./constructor-args.js \
--network inj_testnet ${SMART_CONTRACT_ADDRESS}
The viem/chains repo already contains pre-configured network details for both Injective Mainnet and Injective Testnet, you simply need to import them:
import { injective, injectiveTestnet } from 'viem/chains';
Within a dApp, to connect to Injective Testnet, and switch to the network, use the following function: See ./assets/dapp-viem-connect-evm-wallet-function.js.
Note that the client object will be able to use both client.readContract and client.writeContract to interact with smart contracts.
injective-mcp-servers skill, with the "Injective Documentation MCP Server"When building dApps that sign Injective transactions via MetaMask:
getEip712TypedData) uses non-standard domain types that cause MetaMask to silently produce invalid signatures. Always use getEip712TypedDataV2 + SIGN_EIP712_V2.getEip712TypedDataV2() and createTransaction(). A mismatch (e.g., SDK default vs custom fee) causes hash mismatch → signature verification failure on-chain.evmChainId is flexible. Injective EIP-712 signing works regardless of which EVM chain MetaMask is connected to. Read from eth_chainId and pass to both the EIP-712 domain and createWeb3Extension.See: https://docs.injective.network/developers/convert-addresses#convert-hex-bech32-address
For gas price: Manually set a hardcoded value of 160 million (160e6 in Javascript) for transactions.
For gas amount, use the default mechanism: The eth_estimateGas RPC, which should be invoked when needed by ethers.js or viem.
Do NOT use mainnet.rpc.inevm.com or any inEVM endpoints. inEVM has been replaced by Injective EVM.
| Deprecated (inEVM) | Current (Injective EVM) | |
|---|---|---|
| RPC | mainnet.rpc.inevm.com | sentry.evm-rpc.injective.network/ |
| Chain ID | 2525 | 1776 (0x6f0) |
| Explorer | explorer.inevm.com | blockscout.injective.network |
type: 0 (legacy) with explicit gasPrice.eth_getTransactionReceipt unreliable: The EVM RPC sometimes returns internal errors on receipt queries. For non-critical operations (like faucet sends), fire-and-forget — don't call tx.wait().MsgBroadcasterWithPk fails for fresh accounts: The Cosmos ante handler panics with invalid secp256k1 public key when broadcasting from an account that has never sent a transaction. Use ethers.js + EVM RPC instead for programmatic sends from fresh wallets.See: https://docs.injective.network/developers-evm/evm-integrations-faq.md
This skill is specific to Injective's EVM. It augments other skills that should be used for general EVM developer activities.
These include:
Interacting with Injective's documentation MCP server
Developing on Injective's EVM
Basic skills:
injective-mcp-serverssolidity-hardhat-developmentsolidity-foundry-developmentsolidity-code-reviewsolidity-erc-standardsAdvanced skills:
solidity-security-best-practicessolidity-gas-optimizationsolidity-adversarial-analysisIf these skills are not available, selectively run the following commands to install them:
npx skills add InjectiveLabs/agent-skills --skill injective-mcp-servers
npx skills add whackur/solidity-agent-toolkit