From morph-skill
Registers AI agent identities on Morph Mainnet per EIP-8004, queries metadata/wallets/reputation, submits/reads feedback via Python CLI commands.
npx claudepluginhub morph-l2/morph-skill --plugin morph-skillThis skill uses the workspace's default tool permissions.
> EIP-8004 agent identity and reputation on **Morph Mainnet** (Chain ID: 2818).
Verifies agent identities, registers permanent on-chain IDs, looks up metadata, and rates reputation via Moltbook Registry on Base blockchain. For sovereign agent interactions.
Registers and manages AI agent identities on Starknet using ERC-8004: NFT-based registration, reputation via feedback, third-party validations.
Implements ERC-8004 for registering AI agents on EVM chains, managing on-chain identity, reputation, validation, and discovery with Agent0 TypeScript SDK.
Share bugs, ideas, or general feedback.
EIP-8004 agent identity and reputation on Morph Mainnet (Chain ID: 2818). All commands output JSON. On-chain via bundled ABIs — no external API keys required.
Use this skill when the user wants to: register an agent identity, query agent metadata or wallet, check agent reputation, submit feedback for an agent, or read agent reviews.
pip install requests eth_account eth_abi eth_utils
# Run from repository root
python3 scripts/morph_api.py <command> [options]
No API keys required. Talks directly to Morph RPC using bundled ABI files.
Decide the mode once via the root SKILL.md and docs/social-wallet-integration.md.
agent-register and agent-feedback require --private-key (local signing only).agent-wallet, agent-metadata, agent-reputation, agent-reviews) after resolving their address from BGW, but cannot execute identity writes through this skill today.agent_id is a numeric ERC-721 token ID (e.g. 1, 42). It is returned by agent-register in the agent_id field of the JSON response. If the receipt was not parsed, use tx-receipt to inspect the Transfer event logs and extract the token ID.
agent-registerRegister an agent identity with optional URI and metadata. Optionally pass --fee-token-id to pay gas via altfee.
python3 scripts/morph_api.py agent-register --name "MorphBot" --agent-uri "https://example.com/agent.json" --metadata role=assistant,team=research --private-key 0xYourKey
# With altfee gas payment
python3 scripts/morph_api.py agent-register --name "MorphBot" --fee-token-id 5 --private-key 0xYourKey
agent-walletRead the payment wallet for an agent.
python3 scripts/morph_api.py agent-wallet --agent-id <agent_id>
agent-metadataRead one metadata value by key.
python3 scripts/morph_api.py agent-metadata --agent-id <agent_id> --key name
agent-reputationRead aggregated reputation and feedback count.
python3 scripts/morph_api.py agent-reputation --agent-id <agent_id> --tag1 quality
agent-feedbackSubmit feedback for an agent. Scores are encoded with 2 decimals. Optionally pass --fee-token-id to pay gas via altfee.
python3 scripts/morph_api.py agent-feedback --agent-id <agent_id> --value 4.5 --tag1 quality --feedback-uri "https://example.com/review/1" --private-key 0xYourKey
# With altfee gas payment
python3 scripts/morph_api.py agent-feedback --agent-id <agent_id> --value 4.5 --fee-token-id 5 --private-key 0xYourKey
agent-reviewsRead all feedback entries for an agent.
python3 scripts/morph_api.py agent-reviews --agent-id <agent_id> --include-revoked
agent-set-metadataSet a metadata key-value pair for an agent.
python3 scripts/morph_api.py agent-set-metadata --agent-id <id> --key "role" --value "assistant" --private-key 0xKey
agent-set-uriSet or update the agent URI.
python3 scripts/morph_api.py agent-set-uri --agent-id <id> --uri "https://example.com/agent.json" --private-key 0xKey
agent-set-walletBind an operational wallet to an agent. Requires the new wallet's private key for EIP-712 signing. The signed payload must match AgentWalletSet(agentId,newWallet,owner,deadline) on ERC8004IdentityRegistry, and the deadline must stay within the contract's 5 minute window.
python3 scripts/morph_api.py agent-set-wallet --agent-id <id> --new-wallet-key 0xNewKey --private-key 0xOwnerKey
agent-unset-walletUnbind the operational wallet from an agent.
python3 scripts/morph_api.py agent-unset-wallet --agent-id <id> --private-key 0xKey
agent-revoke-feedbackRevoke previously submitted feedback.
python3 scripts/morph_api.py agent-revoke-feedback --agent-id <id> --feedback-index 0 --private-key 0xKey
agent-append-responseAppend an owner response to a feedback entry.
python3 scripts/morph_api.py agent-append-response --agent-id <id> --client 0xClientAddr --feedback-index 0 --response-uri "https://example.com/response" --private-key 0xKey
agent-register — show the name, URI, and metadata before signing.agent-feedback — show the target agentId, score, and tags before signing.agent-set-metadata, agent-set-uri, agent-set-wallet, agent-unset-wallet, agent-revoke-feedback, agent-append-response) — show the target agentId and updated fields before signing.agent-wallet, agent-metadata, agent-reputation, agent-reviews) require no private key.0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 (override via MORPH_IDENTITY_REGISTRY env var)0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 (override via MORPH_REPUTATION_REGISTRY env var)contracts/IdentityRegistry.json and contracts/ReputationRegistry.jsonMORPH_RPC_URL, MORPH_CHAIN_IDRegister an agent and verify:
agent-register → agent-wallet → agent-metadata --key name
Check an agent's reputation:
agent-reputation → agent-reviews
Submit feedback for an agent:
agent-feedback --value 4.5 --tag1 quality → agent-reputation (verify updated)
Full agent lifecycle:
agent-register → agent-set-metadata → agent-set-uri → agent-set-wallet → x402-register (monetize)
Manage feedback:
agent-reviews (read all) → agent-revoke-feedback (retract) / agent-append-response (respond)
Register agent identity + enable payment collection (x402):
agent-register --name "MyAgent" --private-key 0xKey
→ note the agent_id and the wallet address used
→ x402-register --private-key 0xKey --save --name myagent
(the same wallet address becomes the x402 payTo — agents can now pay you USDC)
→ x402-server --pay-to 0xWallet --price 0.001 --name myagent
(expose a local paid HTTP endpoint for testing)
balance (morph-wallet) to check ETH for gas before agent-register or agent-feedback.tx-receipt (morph-wallet) to inspect transaction logs if agent-register times out before returning agent_id.--fee-token-id on agent-register or agent-feedback if the user wants to pay gas with an alternative token.agent-register, use x402-register --save to register the agent wallet as an x402 payment recipient. Then use x402-server to expose a paid HTTP endpoint. Other agents can pay with x402-pay.