Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Deploy smart contracts and bridge assets to Abstract (ZK Stack L2). Use when an agent needs to deploy contracts on Abstract, bridge ETH/tokens to Abstract, trade/swap tokens, place predictions on Myriad Markets, check balances, transfer assets, or interact with Abstract mainnet. Covers zksolc compilation, Hardhat deployment, Relay bridging, DEX trading (Kona, Aborean), Myriad prediction markets, and key contract addresses.
Deploy smart contracts and bridge assets to Abstract (ZK Stack L2). Use when an agent needs to deploy contracts on Abstract, bridge ETH/tokens to Abstract, trade/swap tokens, place predictions on Myriad Markets, check balances, transfer assets, or interact with Abstract mainnet. Covers zksolc compilation, Hardhat deployment, Relay bridging, DEX trading (Kona, Aborean), Myriad prediction markets, and key contract addresses.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Everything an AI agent needs to operate on Abstract (ZK Stack L2).
# Check if you're ready to operate node scripts/quick-start.js check <your-wallet-address> # Or get the full setup guide node scripts/quick-start.js
AGW is a smart contract wallet that earns XP on Abstract. Essential for agents! β οΈ CRITICAL: Understand the 3 layers first: Private Key β EOA (signer) β AGW (smart contract wallet) The correct funding flow: 1. Fund EOA with small ETH (for gas) 2. Create/deploy AGW (EOA pays gas for first tx) 3. Fund AGW with your main balance 4. Everything runs through AGW from now on export WALLET_PRIVATE_KEY=0x... node scripts/create-agw.js Your EOA becomes the signer, AGW is a separate smart contract address. β οΈ Version Warning: Different agw-client versions may compute different AGW addresses! Always pin your version. See references/agw.md for details.
node scripts/check-balances.js <wallet> all
export WALLET_PRIVATE_KEY=0x... node scripts/relay-bridge.js --from base --amount 0.01
export WALLET_PRIVATE_KEY=0x... node scripts/deploy-abstract.js ./artifacts/MyContract.json "constructor-arg"
export WALLET_PRIVATE_KEY=0x... node scripts/transfer.js --to 0x... --amount 0.01 # ETH node scripts/transfer.js --to 0x... --amount 100 --token USDC # Token
export WALLET_PRIVATE_KEY=0x... export DEX_ROUTER=0x... # Set DEX router address node scripts/swap-tokens.js --from ETH --to USDC --amount 0.01
Abstract has multiple DEXs. Use the protocol-specific scripts for best results: # Kona Finance (V2) - USDC β ETH export WALLET_PRIVATE_KEY=0x... node scripts/swap-kona.js # Aborean (Velodrome-style) - when router is available node scripts/swap-aborean.js # Generic Uniswap V2 node scripts/swap-uniswap-v2.js See references/dex.md for contract addresses and supported pools.
Trade on Myriad Markets β the largest prediction market on Abstract (415K+ users, $100M+ volume). # List open markets node scripts/myriad-trade.js list # Get market details node scripts/myriad-trade.js info <marketId> # Buy shares (place a prediction) export WALLET_PRIVATE_KEY=0x... node scripts/myriad-buy-direct.js <marketId> <outcomeId> <amount> # Example: $1 USDC.e on "Yes" for market 765 node scripts/myriad-buy-direct.js 765 0 1 See references/myriad.md for contract addresses, ABI details, and token info.
# Read node scripts/call-contract.js --address 0x... --abi ./abi.json --function balanceOf --args 0x1234 # Write export WALLET_PRIVATE_KEY=0x... node scripts/call-contract.js --address 0x... --abi ./abi.json --function transfer --args 0x1234,100 --write
# Deploy SimpleNFT.sol first, then mint export WALLET_PRIVATE_KEY=0x... # Mint to existing contract node scripts/mint-nft.js --contract 0x... --image QmIPFShash --to 0xRecipient --name "My NFT" See references/SimpleNFT.sol for a basic NFT contract template.
# Check USDC balance node scripts/usdc-ops.js balance <wallet> # Transfer USDC export WALLET_PRIVATE_KEY=0x... node scripts/usdc-ops.js transfer <to> <amount> # Approve spender node scripts/usdc-ops.js approve <spender> <amount> # Check allowance node scripts/usdc-ops.js allowance <owner> <spender>
# Get current gas prices node scripts/estimate-gas.js # Estimate transfer cost node scripts/estimate-gas.js transfer <to> <amount> # Estimate deployment cost node scripts/estimate-gas.js deploy <bytecodeSize>
# Watch new blocks node scripts/watch-events.js blocks # Watch ETH transfers to/from wallet node scripts/watch-events.js transfers <wallet> # Watch ERC20 transfers node scripts/watch-events.js erc20 <token> <wallet> # Watch contract events node scripts/watch-events.js contract <address>
# Get faucet instructions node scripts/testnet-setup.js faucet # Check testnet balance node scripts/testnet-setup.js check <wallet> # Verify testnet setup node scripts/testnet-setup.js verify <wallet>
ItemValueChain ID2741RPChttps://api.mainnet.abs.xyzExplorerhttps://abscan.orgBridgehttps://relay.link/bridge/abstractUSDC0x84A71ccD554Cc1b02749b35d22F684CC8ec987e1WETH0x3439153EB7AF838Ad19d56E1571FBD09333C2809Kona Router0x441E0627Db5173Da098De86b734d136b27925250Uniswap V2 Router0xad1eCa41E6F772bE3cb5A48A6141f9bcc1AF9F7cMyriad PM Contract0x3e0F5F8F5Fb043aBFA475C0308417Bf72c463289Myriad PTS Token0x0b07cf011B6e2b7E0803b892d97f751659940F23Myriad APIhttps://api-v2.myriadprotocol.com
ScriptPurposequick-start.jsSTART HERE - Setup guide & health checkcreate-agw.jsCreate Abstract Global Wallet (earns XP!)check-balances.jsCheck ETH and token balancesrelay-bridge.jsBridge ETH from other chainsbridge-usdc-relay.jsBridge USDC via Relay APIdeploy-abstract.jsDeploy contracts to Abstract (with verification!)verify-contract.jsVerify contract has bytecode (SAFETY CHECK)transfer.jsSend ETH or tokensusdc-ops.jsUSDC transfers, approvals, allowancesswap-tokens.jsTrade tokens via DEX (generic)swap-kona.jsSwap on Kona Finance (V2) β swap-aborean.jsSwap on Aborean (Velodrome-style)swap-uniswap-v2.jsSwap on Uniswap V2myriad-trade.jsList markets, get info (Myriad API)myriad-buy-direct.jsPlace predictions on Myriad (on-chain) β call-contract.jsCall any contract functionmint-nft.jsMint NFTs to existing contractestimate-gas.jsEstimate gas costs before transactionswatch-events.jsMonitor on-chain events in real-timetestnet-setup.jsSetup and verify testnet access
FileContentsagw.mdAbstract Global Wallet guide (XP, activation)dex.mdDEX contracts & swap patterns (Kona, Aborean)myriad.mdMyriad prediction market contracts, ABI & tradinghardhat.config.jsWorking Hardhat config for Abstractaddresses.mdKey contract addressestroubleshooting.mdCommon errors and fixesSimpleNFT.solBasic NFT contract template
Abstract is a zkSync-based chain. Standard EVM deployment methods DON'T WORK.
// Use zksync-ethers (NOT viem, NOT standard ethers) const { ContractFactory } = require("zksync-ethers"); const factory = new ContractFactory(abi, bytecode, wallet); const contract = await factory.deploy(args); // ALWAYS verify bytecode after deploy const code = await provider.getCode(address); if (code === '0x') throw new Error("Deploy failed!");
// DON'T use viem's deployContract await walletClient.deployContract({...}); // Returns success but NO BYTECODE // DON'T use standard ethers ContractFactory // DON'T trust transaction success alone
Compiled with zksolc (not standard solc) Using zksync-ethers ContractFactory Verify eth_getCode != 0x after deploy Test contract functions before sending tokens
Gas estimation fails β Use Hardhat, not foundry-zksync Compiler errors β Use Solidity 0.8.x with zksolc TX stuck β Check gas price, verify on abscan.org Deploy succeeds but no bytecode β Use zksync-ethers, not viem Tokens sent to empty address β Always verify bytecode first! See references/troubleshooting.md for detailed solutions.
# Core dependencies npm install ethers zksync-ethers viem # For contract deployment npm install @matterlabs/hardhat-zksync # For AGW (Abstract Global Wallet) - PIN THE VERSION! # Different versions compute different AGW addresses npm install @abstract-foundation/agw-client@1.10.0 β οΈ agw-client version warning: Newer versions may use different factory contracts, computing different AGW addresses for the same EOA. If you change versions, verify your AGW address hasn't changed before sending funds!
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.