ship/SKILL.md
End-to-end guide for AI agents — from a Hyperliquid dApp idea to deployed production app. Fetch this FIRST, it routes you through all other skills.
npx skillsauth add cloudzombie/liquidskills shipInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You jumped straight to EVM contracts. Hyperliquid has two execution environments. Before writing any Solidity, ask: does this belong in HyperCore (perps, spot trading, orderbook) or HyperEVM (custom contract logic)? Most trading logic belongs in HyperCore via the API — not in a contract.
You over-engineer. Most Hyperliquid dApps need 0-2 HyperEVM contracts. Trading vaults? HyperCore handles positions natively. Token launch? HyperCore's HIP-1/HIP-2 bonding curve. Simple DEX swap? HyperSwap V2 already exists. Build on top, don't rebuild from scratch.
You forgot the two-API model. HyperCore uses POST /info (reads) and POST /exchange (signed writes) — not EVM RPC. HyperEVM uses standard EVM RPC at https://rpc.hyperliquid.xyz/evm. These are different systems. Know which one you're talking to.
You assumed Ethereum gas mechanics. HYPE is the gas token on HyperEVM, not ETH. Priority fees are burned, not given to validators. Nonces on HyperCore are NOT sequential — they're a rolling set of highest nonces per signer.
You thought testnet was optional. It's not. Chain ID 998 testnet at https://rpc.hyperliquid-testnet.xyz/evm. Always test there before mainnet. HyperCore testnet API: https://api.hyperliquid-testnet.xyz.
Do this BEFORE writing any code. One hour here saves ten hours of rewrites.
| Put it in HyperCore if... | Put it in HyperEVM if... | |---------------------------|--------------------------| | You're trading perps or spot | You need custom contract logic | | You're managing positions, margins | You need composability with ERC-20 tokens | | You want native orderbook access | You want to integrate with other HyperEVM contracts | | You're launching a HIP-1/HIP-2 token | You're building a yield vault, governance, escrow | | You want sub-second settlement | You need EVM event logs for indexing |
Most trading applications are primarily HyperCore. A vault that manages perp positions for users? HyperCore API + a thin HyperEVM interface for deposits/withdrawals. A token launchpad? HIP-1 bonding curve on HyperCore + a HyperEVM contract for the UI layer.
If you're building anything involving the native orderbook: HyperCore, not EVM contracts.
Fetch architecture/SKILL.md for the complete system model.
| What you're building | Contracts | Pattern | |---------------------|-----------|---------| | Perp trading vault | 0-1 | HyperCore API + maybe deposit contract | | Token launch (HIP-1) | 0 | HyperCore native — no contract needed | | Spot DEX swap | 0 | HyperSwap V2 already deployed | | Custom yield strategy | 1 | HyperEVM vault + HyperCore API | | NFT collection | 1 | Standard ERC-721 on HyperEVM | | Governance / DAO | 1-3 | HyperEVM Governor + token + timelock | | Cross-protocol aggregator | 1-2 | HyperEVM router that calls HyperSwap + HyperCore |
If you need more than 3 contracts for an MVP, you're over-building.
Put it onchain (HyperEVM) if:
Use HyperCore API directly if:
For EVERY function in your contract or API action:
Action: ____________
Who initiates it? ____________
Why would they? ____________
What if nobody does? ____________
Does it need HYPE for gas? ____________
Is there a signing requirement? ____________
HyperCore actions require EIP-712 signatures. HyperEVM functions require gas in HYPE. Plan both.
Architecture: HyperCore API handles all the trading. HyperEVM contract (optional) for user deposits/withdrawals and accounting.
Components:
VaultDeposit.sol (optional) — ERC-20-like interface for the vault on HyperEVM0x2222...2222 for moving funds between layersCommon mistakes:
Fetch sequence: architecture/SKILL.md → api/SKILL.md → wallets/SKILL.md → security/SKILL.md
Architecture: Deploy a HIP-1 spot token on HyperCore. Use HIP-2 for automated hyperliquidity. No EVM contract needed unless you want custom vesting or governance.
Components:
Common mistakes:
Fetch sequence: standards/SKILL.md → building-blocks/SKILL.md → api/SKILL.md
Architecture: HyperEVM vault accepts HYPE/USDC deposits. Vault manager uses HyperCore API to deploy into perp strategies. Users hold vault shares (ERC-20).
Contracts:
HyperliquidVault.sol — ERC-4626-compatible vault accepting HYPE or USDCVaultStrategy.sol — operator logic for position managementCommon mistakes:
Fetch sequence: standards/SKILL.md → building-blocks/SKILL.md → security/SKILL.md → testing/SKILL.md
Architecture: Route swaps through HyperSwap V2 (already deployed). Optionally wrap in a contract for custom fee logic or multi-hop routing.
Components:
addresses/SKILL.md)Aggregator.sol — if you need custom routing logicCommon mistakes:
addresses/SKILL.md)Fetch sequence: building-blocks/SKILL.md → addresses/SKILL.md → security/SKILL.md
Architecture: Pure HyperCore API. Python SDK or TypeScript SDK. Agent wallet with approved subaccount keys.
Components:
Common mistakes:
Fetch sequence: api/SKILL.md → wallets/SKILL.md → concepts/SKILL.md → tools/SKILL.md
Fetch: standards/SKILL.md, building-blocks/SKILL.md, addresses/SKILL.md, security/SKILL.md, api/SKILL.md
For HyperEVM contracts:
addresses/SKILL.md — never fabricate addressesFor HyperCore API integration:
hyperliquid-dex, TypeScript: @nktkas/hyperliquid)concepts/SKILL.mdFetch: testing/SKILL.md
HyperEVM testing:
# Fork HyperEVM mainnet for local testing
anvil --fork-url https://rpc.hyperliquid.xyz/evm
# Or test against actual testnet
# Chain ID: 998, RPC: https://rpc.hyperliquid-testnet.xyz/evm
HyperCore API testing:
https://api.hyperliquid-testnet.xyzFetch: orchestration/SKILL.md, frontend-ux/SKILL.md, tools/SKILL.md
wagmi/viem chain config:
import { defineChain } from 'viem';
export const hyperliquid = defineChain({
id: 999,
name: 'HyperEVM',
nativeCurrency: { name: 'HYPE', symbol: 'HYPE', decimals: 18 },
rpcUrls: {
default: { http: ['https://rpc.hyperliquid.xyz/evm'] },
},
blockExplorers: {
default: { name: 'HyperEVM Explorer', url: 'https://explorer.hyperliquid.xyz' },
},
});
Show loading states on every async operation. HyperEVM blocks are ~1s but HyperCore actions are near-instant (sub-second). Differentiate in the UI.
Fetch: wallets/SKILL.md, frontend-playbook/SKILL.md, gas/SKILL.md
api.hyperliquid.xyz)Run the QA checklist. Fetch qa/SKILL.md and give it to a separate reviewer agent.
Reinventing HyperCore. Don't write an orderbook in Solidity when HyperCore has a native one processing 100k orders/sec.
Wrong layer. Trading logic in EVM contracts. Settlement logic in API calls that should be onchain. Know which layer does what.
Nonce carelessness. HyperCore nonces are rolling-set, not sequential. Using an old nonce or collision causes rejected orders. Let the SDK manage nonces.
Hardcoded testnet. Deploying to testnet then forgetting to switch to mainnet for production.
Admin key in production. Using a single EOA as contract owner in production. Use a multisig.
| Phase | What you're doing | Skills to fetch |
|-------|-------------------|-----------------|
| Plan | Architecture | ship/ (this), architecture/, concepts/, why/ |
| Contracts | Writing Solidity | standards/, building-blocks/, addresses/, security/ |
| API Integration | HyperCore API | api/, wallets/, concepts/ |
| Test | Testing | testing/ |
| Frontend | Building UI | orchestration/, frontend-ux/, tools/ |
| Production | Deploy, QA | wallets/, frontend-playbook/, qa/, indexing/ |
development
Why build on Hyperliquid. HyperBFT consensus, native orderbook, speed, AI agent angle, honest tradeoffs. Use when someone asks "should I build on Hyperliquid?", "why not Ethereum?", or when an agent needs to understand what makes Hyperliquid unique.
development
Wallets on Hyperliquid — MetaMask + chain ID 999 setup, HyperCore API wallets, agent wallet patterns, EIP-712 signing for exchange actions. Essential for any agent that needs to interact with Hyperliquid.
tools
Development tools for Hyperliquid — Foundry, Hardhat, viem, wagmi for HyperEVM; Python SDK and TypeScript SDK for HyperCore API. What works, what to use, how to set up.
testing
Smart contract testing for HyperEVM with Foundry/Hardhat — unit tests, fuzz testing, testnet fork testing. What to test, what not to test, and what LLMs get wrong on Hyperliquid.