Okx Cex Earn
okx/agent-skills
Manages OKX Simple Earn (flexible savings/lending), Flash Earn, On-chain Earn (staking/DeFi), Dual Investment (DCD/双币赢), and AutoEarn (自动赚币) via the okx CLI.
Register AI agents on-chain using the ERC-8004 Trustless Agents standard.
$ npx skills add internet-court/internet-court-skill --skill starknet-identity -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install internet-court/internet-court-skill starknet-identity --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/internet-court/internet-court-skill.git skills-src && mkdir -p .claude/skills && cp -r skills-src/vendored/starknet/starknet-identity .claude/skills/starknet-identity && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "starknet-identity" agent skill from https://github.com/internet-court/internet-court-skill/tree/main/vendored/starknet/starknet-identity into .claude/skills/starknet-identity/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "starknet-identity", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/internet-court/internet-court-skill/tree/main/vendored/starknet/starknet-identityType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add internet-court/internet-court-skill --skill starknet-identity -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install internet-court/internet-court-skill starknet-identity --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/internet-court/internet-court-skill.git skills-src && mkdir -p .agents/skills && cp -r skills-src/vendored/starknet/starknet-identity .agents/skills/starknet-identity && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "starknet-identity" agent skill from https://github.com/internet-court/internet-court-skill/tree/main/vendored/starknet/starknet-identity into .agents/skills/starknet-identity/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "starknet-identity", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add internet-court/internet-court-skill --skill starknet-identity -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install internet-court/internet-court-skill starknet-identity --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/internet-court/internet-court-skill.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/vendored/starknet/starknet-identity .cursor/skills/starknet-identity && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "starknet-identity" agent skill from https://github.com/internet-court/internet-court-skill/tree/main/vendored/starknet/starknet-identity into .cursor/skills/starknet-identity/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "starknet-identity", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/internet-court/internet-court-skill.git --path vendored/starknet/starknet-identity--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add internet-court/internet-court-skill --skill starknet-identity -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install internet-court/internet-court-skill starknet-identity --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/internet-court/internet-court-skill.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/vendored/starknet/starknet-identity .gemini/skills/starknet-identity && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "starknet-identity" agent skill from https://github.com/internet-court/internet-court-skill/tree/main/vendored/starknet/starknet-identity into .gemini/skills/starknet-identity/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "starknet-identity", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install internet-court/internet-court-skill starknet-identityInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add internet-court/internet-court-skill --skill starknet-identity -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/internet-court/internet-court-skill.git skills-src && mkdir -p .github/skills && cp -r skills-src/vendored/starknet/starknet-identity .github/skills/starknet-identity && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "starknet-identity" agent skill from https://github.com/internet-court/internet-court-skill/tree/main/vendored/starknet/starknet-identity into .github/skills/starknet-identity/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "starknet-identity", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add internet-court/internet-court-skill --skill starknet-identity -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install internet-court/internet-court-skill starknet-identity --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/internet-court/internet-court-skill.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/vendored/starknet/starknet-identity .opencode/skills/starknet-identity && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "starknet-identity" agent skill from https://github.com/internet-court/internet-court-skill/tree/main/vendored/starknet/starknet-identity into .opencode/skills/starknet-identity/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "starknet-identity", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
starknet-identityRegister AI agents on-chain using the ERC-8004 Trustless Agents standard.
Starknet Identity is an agent skill from internet-court/internet-court-skill. Register AI agents on-chain using the ERC-8004 Trustless Agents standard. Manage agent identity as NFTs, build reputation through feedback, and request third-party validation.
Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `agents/openai.yaml`).
It sits in Business, Finance & HR, covering Crypto and DeFi analysis and Smart contracts. The repository describes itself as: The trust layer for agent-to-agent commerce — natural-language mandates, ERC-7710 delegated permissions, x402 payments, escrow, and dispute resolution as one open, catch-all… The licence is Apache-2.0.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit fa89195. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadWriteGlobGrepTaskFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comeips.ethereum.orga2a-protocol.orgstarknet.ioFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Starknet Identity loads about 2.7k tokens when it runs. Until then it costs about 48 tokens; SKILL.md has 532 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, Read, Write, Glob, Grep, TaskAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from internet-court/internet-court-skill at commit fa89195, republished under its Apache-2.0 licence (© internet-court). 532 words, ~2,676 tokens.
.claude/skills/starknet-identity/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Register and manage AI agent identities on Starknet using the ERC-8004 standard.
starknet and connect a funded account to the target ERC-8004 registry deployment.ERC-8004 defines three interconnected on-chain registries for AI agents:
Reference implementation: erc8004-cairo
npm install starknetimport { Account, RpcProvider, Contract, CallData } from "starknet";
const provider = new RpcProvider({ nodeUrl: process.env.STARKNET_RPC_URL });
const account = new Account({ provider, address, signer: privateKey });
const identityRegistry = new Contract({
abi: identityRegistryAbi,
address: registryAddress,
providerOrAccount: account,
});
// Register with metadata
const metadata = [
{ key: "agentName", value: "MyTradingAgent" },
{ key: "agentType", value: "defi-trader" },
{ key: "version", value: "1.0.0" },
{ key: "model", value: "claude-opus-4-5" },
{ key: "status", value: "active" },
];
const tokenUri = "ipfs://QmYourAgentSpecHash"; // IPFS link to full agent spec
const { transaction_hash } = await account.execute({
contractAddress: registryAddress,
entrypoint: "register_with_metadata",
calldata: CallData.compile({
token_uri: tokenUri,
metadata: metadata,
}),
});
const receipt = await account.waitForTransaction(transaction_hash);
// Parse agent_id from events// Check if agent exists
const exists = await identityRegistry.agent_exists(agentId);
// Get total registered agents
const totalAgents = await identityRegistry.total_agents();
// Get agent metadata
const name = await identityRegistry.get_metadata(agentId, "agentName");
const agentType = await identityRegistry.get_metadata(agentId, "agentType");
// Get agent owner (ERC-721)
const owner = await identityRegistry.owner_of(agentId);// Only the agent owner can update metadata
await account.execute({
contractAddress: registryAddress,
entrypoint: "set_metadata",
calldata: CallData.compile({
agent_id: agentId,
key: "status",
value: "upgraded",
}),
});The reputation system uses a cryptographic authorization flow:
// Step 1: Agent owner creates authorization
const feedbackAuth = {
agent_id: agentId,
client_address: clientAddress,
index_limit: 10, // Max feedback entries allowed
expiry: Math.floor(Date.now() / 1000) + 3600, // 1 hour
chain_id: chainId,
identity_registry: registryAddress,
signer_address: ownerAddress,
};
// Sign the authorization (using agent owner's account)
const messageHash = computePoseidonHash(feedbackAuth); // EIP-712 style
const signature = await ownerAccount.signMessage(messageHash);
// Step 2: Client submits feedback
await clientAccount.execute({
contractAddress: reputationRegistryAddress,
entrypoint: "give_feedback",
calldata: CallData.compile({
agent_id: agentId,
score: 85, // 0-100
tag1: encodedTag("reliability"),
tag2: encodedTag("speed"),
fileuri: "",
filehash: 0,
feedback_auth: feedbackAuth,
signature: signature,
}),
});const reputationRegistry = new Contract({
abi: reputationAbi,
address: reputationAddress,
providerOrAccount: provider,
});
// Get summary for an agent (count + average score)
const [count, avgScore] = await reputationRegistry.get_summary(
agentId,
[], // all client addresses (or filter specific ones)
0, // tag1 filter (0 = all)
0, // tag2 filter (0 = all)
);
// Read specific feedback
const [score, tag1, tag2, isRevoked] = await reputationRegistry.read_feedback(
agentId,
clientAddress,
feedbackIndex,
);
// Get all clients who gave feedback
const clients = await reputationRegistry.get_clients(agentId);const validationRegistry = new Contract({
abi: validationAbi,
address: validationAddress,
providerOrAccount: account,
});
// Agent owner requests validation from a specific validator
await account.execute({
contractAddress: validationAddress,
entrypoint: "validation_request",
calldata: CallData.compile({
validator_address: validatorAddress,
agent_id: agentId,
request_uri: "ipfs://QmValidationRequestDetails",
request_hash: 0, // Auto-generated if 0
}),
});// Validator responds to the request
await validatorAccount.execute({
contractAddress: validationAddress,
entrypoint: "validation_response",
calldata: CallData.compile({
request_hash: requestHash,
response: 92, // Score 0-100
response_uri: "ipfs://QmValidationReport",
response_hash: reportHash,
tag: encodedTag("performance"),
}),
});// Get validation summary
const [validationCount, avgValidationScore] = await validationRegistry.get_summary(
agentId,
[], // all validators
0, // tag filter
);
// Get specific validation
const [validator, agentId_, response, tag, lastUpdate] =
await validationRegistry.get_validation_status(requestHash);Combine on-chain identity with A2A Agent Cards for discoverability:
{
"name": "MyTradingAgent",
"description": "Autonomous DeFi trading agent on Starknet",
"url": "https://my-agent.example.com",
"provider": {
"organization": "MyOrg"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": false
},
"skills": [
{
"id": "starknet-swap",
"name": "Token Swap",
"description": "Execute token swaps on Starknet via avnu"
}
],
"defaultInputModes": ["text/plain"],
"defaultOutputModes": ["text/plain"],
"authentication": {
"schemes": ["bearer"]
},
"starknetIdentity": {
"registryAddress": "0x...",
"agentId": 42,
"reputationScore": 85,
"validationCount": 3
}
}Serve at /.well-known/agent.json for A2A discovery.
| Key | Description | Example |
|---|---|---|
agentName | Display name | "MyTradingAgent" |
agentType | Category | "defi-trader", "nft-curator", "data-analyst" |
version | Semantic version | "1.0.0" |
model | LLM model used | "claude-opus-4-5", "gpt-4o" |
status | Current status | "active", "paused", "deprecated" |
framework | Agent framework | "daydreams", "openclaw", "langchain" |
capabilities | Comma-separated | "swap,stake,lend" |
a2aEndpoint | Agent Card URL | "https://agent.example.com" |
moltbookId | MoltBook agent ID | "agent_abc123" |
| Code | Meaning | Likely causes | Recovery | User-facing message |
|---|---|---|---|---|
REGISTRATION_FAILED | Initial ERC-8004 registration or metadata write reverted. | Missing fees, duplicate registration, invalid calldata, or stale contract state. | Retry after checking wallet balance, contract state, and constructor/registration inputs. | "Registration failed. Check wallet state and retry." |
AUTHORIZATION_DENIED | Ownership or feedback authorization proof was rejected. | Wrong signer, bad nonce, missing permission, or outdated owner state. | Re-fetch owner/nonce state, verify permissions, and re-sign with the current account. | "Authorization denied. Verify signer permissions and retry." |
VALIDATION_TIMEOUT | Off-chain validation or watcher flow did not complete before the deadline. | Slow relayer, RPC degradation, or downstream A2A service lag. | Retry with a longer timeout after checking chain health, relayer status, and RPC latency. | "Validation timed out. Retry after checking network health." |
SIGNATURE_EXPIRED | Signed payload expired before submission. | Expiry window too short or user approval arrived too late. | Generate a fresh signature with a new expiry and resubmit immediately. | "Signature expired. Re-sign and submit again." |
OWNER_TRANSFERRED | Agent NFT ownership changed while a write or feedback flow was in flight. | NFT transfer, marketplace sale, or custodial wallet rotation. | Refresh ownership state, re-authorize with the new owner, and explain that reputation follows the NFT. | "Ownership changed. Refresh owner state and retry with the new owner." |
© internet-court, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files in vendored/starknet/starknet-identity of internet-court/internet-court-skill.
Open the folder on GitHubat commit fa89195
We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in internet-court/internet-court-skill, which our catalogue first saw on October 7, 2026.
Starknet Identity next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Starknet Identity this skillinternet-court/internet-court-skill | 6.6k | 1 repos | ~2.7k | Automated safety check: Notes | Apache-2.0 | |
| Okx Cex Earnokx/agent-skills | 187 | 2 repos | ~3.3k | Automated safety check: Pass | MIT | |
| Onchain Pay Open APInpc-live/clawfirm | 156 | 1 repos | ~4.9k | Automated safety check: Pass | MIT | |
| Aptos Explorer Urlsaptos-labs/explorer | 124 | — | ~1.2k | Automated safety check: Pass | None | |
| Oracle Flashloan Analysisquillai-network/quillshield_skills | 130 | — | ~2.8k | Automated safety check: Pass | MIT | |
| Defi Amm Securityaffaan-m/ECC | 277k | 1 repos | ~1.3k | Automated safety check: Pass | MIT |
okx/agent-skills
Manages OKX Simple Earn (flexible savings/lending), Flash Earn, On-chain Earn (staking/DeFi), Dual Investment (DCD/双币赢), and AutoEarn (自动赚币) via the okx CLI.
npc-live/clawfirm
Binance Onchain Pay enables users to buy cryptocurrency with fiat (e.g., EUR, USD) or send existing crypto from their Binance account directly to any external on-chain wallet address in a single…
aptos-labs/explorer
Map questions about Aptos blockchain entities (transactions, accounts, blocks, validators, coins, fungible assets, NFTs, Move objects, ANS names) to canonical Aptos Explorer URLs at…
quillai-network/quillshield_skills
Detects price oracle manipulation and flash loan attack vectors in DeFi smart contracts.
affaan-m/ECC
Security checklist for Solidity AMM contracts, liquidity pools, and swap flows.
sickn33/agentic-awesome-skills
Build natural-language crypto/DeFi agents and EVM MCP plugins (Claude Code, Cursor, Codex, Gemini).
internet-court/internet-court-skill
Uploads one Kleros-related file per paid request to IPFS through the Kleros x402 gateway for 0.01 USDC on Base, returning a CID that Kleros contracts can reference.
internet-court/internet-court-skill
Guides building on the 0G Compute Network, a decentralized GPU marketplace for AI inference and fine-tuning, with SDK patterns and CLI commands.
internet-court/internet-court-skill
Creates, trades and settles permissionless prediction markets on Solana with any SPL token as collateral, including social-media and custom-oracle markets.
internet-court/internet-court-skill
Connects an agent to the BNB Chain MCP server to read blocks and contracts, move tokens and NFTs, register ERC-8004 agents and use Greenfield storage.
internet-court/internet-court-skill
Specifies how a GenLayer Intelligent Contract decision about an agent's performance becomes an ERC-7710 revocation or policy change, through a relayer or bridge and an EVM controller.
internet-court/internet-court-skill
Specifies how a GenLayer Intelligent Contract should supervise an AI agent, with review rubrics, evidence schemas and continue, warn, constrain or revoke decisions.
Categories
Register AI agents on-chain using the ERC-8004 Trustless Agents standard. Starknet Identity is an agent skill from internet-court/internet-court-skill. Register AI agents on-chain using the ERC-8004 Trustless Agents standard.
Starknet Identity fits situations like: tasks that involve Crypto and DeFi analysis; tasks that involve Smart contracts.
Run `npx skills add internet-court/internet-court-skill --skill starknet-identity -a claude-code`. Or copy the skill folder (vendored/starknet/starknet-identity in internet-court/internet-court-skill) into .claude/skills/starknet-identity in your project. Claude Code loads it when a task matches its description.
Run `npx skills add internet-court/internet-court-skill --skill starknet-identity -a codex`. Or copy the skill folder (vendored/starknet/starknet-identity in internet-court/internet-court-skill) into .agents/skills/starknet-identity in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add internet-court/internet-court-skill --skill starknet-identity -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/starknet-identity, .gemini/skills/starknet-identity, .github/skills/starknet-identity and .opencode/skills/starknet-identity in your project.
Going by SKILL.md and its folder, Starknet Identity needs the command-line tools its instructions call (npm). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Bash, Read, Write, Glob, Grep, Task.
SKILL.md names 4 domains. As links in the text: github.com, eips.ethereum.org, a2a-protocol.org and starknet.io. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Starknet Identity is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Starknet Identity: Okx Cex Earn (okx/agent-skills, 187 stars), Onchain Pay Open API (npc-live/clawfirm, 156 stars), Aptos Explorer Urls (aptos-labs/explorer, 124 stars) and Oracle Flashloan Analysis (quillai-network/quillshield_skills, 130 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
internet-court (a GitHub organization) maintains it in internet-court/internet-court-skill, which has 6,551 GitHub stars. The repository holds 80 skills in this directory. The repository was last updated on August 19, 2026.
Source: internet-court/internet-court-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.