Install
openclaw skills install usdckrumpClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.
Pay with USDC Krump (USDC.k) via x402 on Story Aeneid EVVM. Supports EVVM Native adapter (no EIP-3009 on token) and legacy Bridge adapter. Requires PRIVY_APP_ID and PRIVY_APP_SECRET (or private key for legacy path); credentials are user-supplied, not stored by the skill.
openclaw skills install usdckrumpEnables OpenClaw agents to pay with USDC Krump (USDC.k) via the x402 protocol on Story Aeneid EVVM, using Privy server wallets or a private key.
This skill provides instructions and parameter reference for USDC Krump (USDC.k) payments via x402 on Story Aeneid. Executable code, examples, and scripts (e.g. EVVM deposit, two-agent flows) live in the full USDC Krump repository; use that repo to run scripts or integrate the payment logic. Only create wallets or initiate payments when the user has explicitly requested a payment and the required credentials are configured.
The skill does not store or provide credentials. You must supply one of:
PRIVY_APP_ID and PRIVY_APP_SECRET (e.g. in ~/.openclaw/openclaw.json under env.vars, or as environment variables). Get these from dashboard.privy.io.payViaEVVM path, the payer private key must be supplied (e.g. AGENT_PRIVATE_KEY). Prefer Privy-managed wallets over raw private keys; do not store private keys in plain environment variables if avoidable.two-agents-x402-native.ts)checkPaymentStatus(receiptId, adapterAddress, rpcUrl)clawhub install privy~/.openclaw/openclaw.json:{
"env": {
"vars": {
"PRIVY_APP_ID": "your-app-id",
"PRIVY_APP_SECRET": "your-app-secret"
}
}
}
EVVM Core moves internal ledger balances; it does not pull tokens from the wallet. For the EVVM Native x402 adapter, the payer must deposit USDC.k into EVVM first. Run this in the full USDC Krump repo (clone from github.com/arunnadarasa/usdckrump):
cd lz-bridge
PRIVATE_KEY=0x<payer_key> DEPOSIT_AMOUNT=1000000 npm run evvm:deposit-usdck
Then use useNativeAdapter: true and the Native adapter address below.
Code reference (implement in your environment or use the full repo’s src/):
import { payViaEVVMWithPrivy } from './src/index';
// EVVM Native adapter (no EIP-3009 on token; payer must have deposited USDC.k via Treasury)
const receipt = await payViaEVVMWithPrivy({
walletId: 'privy-wallet-id',
to: recipientAddress,
amount: '1000000', // 1 USDC.k (6 decimals)
receiptId: 'payment_123',
adapterAddress: '0xDf5eaED856c2f8f6930d5F3A5BCE5b5d7E4C73cc', // EVVM Native x402 adapter
usdcDanceAddress: '0xd35890acdf3BFFd445C2c7fC57231bDE5cAFbde5', // USDC.k (BridgeUSDC)
evvmCoreAddress: '0xa6a02E8e17b819328DDB16A0ad31dD83Dd14BA3b',
evvmId: 1140,
rpcUrl: 'https://aeneid.storyrpc.io',
useNativeAdapter: true,
});
Code reference (use the full repo’s src/ when running):
import { payViaEVVM } from './src/index';
const receipt = await payViaEVVM({
from: agentAddress,
to: recipientAddress,
amount: '1000000',
receiptId: 'payment_123',
privateKey: agentPrivateKey,
adapterAddress: '0xDf5eaED856c2f8f6930d5F3A5BCE5b5d7E4C73cc', // Native adapter
usdcDanceAddress: '0xd35890acdf3BFFd445C2c7fC57231bDE5cAFbde5',
evvmCoreAddress: '0xa6a02E8e17b819328DDB16A0ad31dD83Dd14BA3b',
evvmId: 1140,
rpcUrl: 'https://aeneid.storyrpc.io',
useNativeAdapter: true,
});
In the full USDC Krump repo, run:
AGENT_A_PRIVATE_KEY=0x... AGENT_B_ADDRESS=0x... npx tsx examples/two-agents-x402-native.ts
See the repo’s examples/README-two-agents-x402.md for direct x402 and legacy adapter flows.
0xa6a02E8e17b819328DDB16A0ad31dD83Dd14BA3b11400xd35890acdf3BFFd445C2c7fC57231bDE5cAFbde50xDf5eaED856c2f8f6930d5F3A5BCE5b5d7E4C73cc — use with useNativeAdapter: true (payer must deposit USDC.k via Treasury first)0x00ed0E80E5EAE285d98eC50236aE97e2AF615314 — EIP-3009 on token1315https://aeneid.storyrpc.ioThis skill integrates with the Privy OpenClaw skill to enable:
Ask your OpenClaw agent:
"Create an Ethereum wallet for yourself using Privy on Story Aeneid testnet"
The agent will create a Privy server wallet and return the wallet ID.
Create spending limits and restrictions:
"Create a Privy policy that limits USDC Krump (USDC.k) payments to 10 USDC.k max per transaction"
"Attach the spending limit policy to my Privy wallet"
payViaEVVMWithPrivy(options)Process a payment through EVVM using x402 protocol with Privy wallet.
Parameters:
walletId, to, toIdentity, amount, receiptId, adapterAddress, usdcDanceAddress, evvmCoreAddress, evvmId, rpcUrl (see Option 1 example)useNativeAdapter: Set true for EVVM Native x402 adapter (payer must have deposited USDC.k via Treasury first)privyAppId, privyAppSecret: Optional; use env vars if not providedReturns: Transaction receipt
payViaEVVM(options) (Legacy)Process payment using private key directly (not recommended for production).
checkPaymentStatus(receiptId, adapterAddress, rpcUrl)Check if a payment was successfully processed.
In the full USDC Krump repository, see the examples/ directory:
two-agents-x402-native.ts — Two agents with EVVM Native adapter (recommended)two-agents-x402-simulation.ts — Two agents with legacy Bridge adaptertwo-agents-x402-direct.ts — Direct x402 transfer (no EVVM)agent-payment-privy-example.ts — Privy walletsagent-payment-example.ts — Private keys (legacy)See the repo’s examples/README-two-agents-x402.md for the EVVM deposit step and all flows.
Credentials are user-supplied only; this skill does not store or transmit secrets. Only create wallets or initiate payments when the user has explicitly requested a payment and you have configured the required credentials (see Required credentials).
⚠️ When using Privy wallets:
clawhub install privyPRIVY_APP_ID and PRIVY_APP_SECRET (Privy path), or payer private key (legacy path)MIT