com um clique
com um clique
Integrate Injective RFQ taker flows into browser apps and operational quote monitors. Use this skill when building, reviewing, or debugging RFQ gateway autosign settlement, Web3Gateway AuthZ setup, manual TakerStream quote collection, RFQ open/close flows, conditional TP/SL intents, quote uptime probes, market-readiness checks, or mainnet RFQ frontend integrations. Covers mainnet parameters, canonical decimals, quote windows, signer slots, market discovery, quote-hit diagnostics, and production RFQ gotchas.
Audit and report adherence to Injective's documentation standards
Mass fund Injective wallets with INJ, USDT, or USDC. Batch bank transfers (MsgSend), deposit to exchange subaccounts, top up taker wallets, and check balances across many wallets. Supports batching 200+ transfers in a single transaction. Also covers public-facing faucet servers that accept caller-supplied addresses in either inj1 or 0x form.
Mass create, derive, and manage Injective wallets. Generate wallets from mnemonics (BIP-44 HD derivation), create random wallets, convert between ETH/INJ addresses, and batch fund wallets with INJ or USDT. Supports bulk wallet generation and batch funding.
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.
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.
| 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