NEAR Intents Swap Integration
internet-court/internet-court-skill
Builds cross-chain token swaps and bridge flows with the NEAR Intents 1Click API: quotes, deposit addresses, per-chain deposits and status polling.
Help users initialize and manage an Ethereum beacon chain light client for tracking finalized and optimistic headers.
$ npx skills add Nethereum/Nethereum --skill light-client -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Nethereum/Nethereum light-client --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/Nethereum/Nethereum.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/nethereum-skills/skills/light-client .claude/skills/light-client && 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 "light-client" agent skill from https://github.com/Nethereum/Nethereum/tree/master/plugins/nethereum-skills/skills/light-client into .claude/skills/light-client/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "light-client", 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/Nethereum/Nethereum/tree/master/plugins/nethereum-skills/skills/light-clientType 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 Nethereum/Nethereum --skill light-client -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Nethereum/Nethereum light-client --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Nethereum/Nethereum.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/nethereum-skills/skills/light-client .agents/skills/light-client && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "light-client" agent skill from https://github.com/Nethereum/Nethereum/tree/master/plugins/nethereum-skills/skills/light-client into .agents/skills/light-client/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "light-client", 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 Nethereum/Nethereum --skill light-client -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Nethereum/Nethereum light-client --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Nethereum/Nethereum.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/nethereum-skills/skills/light-client .cursor/skills/light-client && 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 "light-client" agent skill from https://github.com/Nethereum/Nethereum/tree/master/plugins/nethereum-skills/skills/light-client into .cursor/skills/light-client/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "light-client", 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/Nethereum/Nethereum.git --path plugins/nethereum-skills/skills/light-client--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 Nethereum/Nethereum --skill light-client -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Nethereum/Nethereum light-client --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Nethereum/Nethereum.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/nethereum-skills/skills/light-client .gemini/skills/light-client && 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 "light-client" agent skill from https://github.com/Nethereum/Nethereum/tree/master/plugins/nethereum-skills/skills/light-client into .gemini/skills/light-client/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "light-client", 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 Nethereum/Nethereum light-clientInstalls 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 Nethereum/Nethereum --skill light-client -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Nethereum/Nethereum.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/nethereum-skills/skills/light-client .github/skills/light-client && 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 "light-client" agent skill from https://github.com/Nethereum/Nethereum/tree/master/plugins/nethereum-skills/skills/light-client into .github/skills/light-client/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "light-client", 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 Nethereum/Nethereum --skill light-client -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Nethereum/Nethereum light-client --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Nethereum/Nethereum.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/nethereum-skills/skills/light-client .opencode/skills/light-client && 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 "light-client" agent skill from https://github.com/Nethereum/Nethereum/tree/master/plugins/nethereum-skills/skills/light-client into .opencode/skills/light-client/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "light-client", 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.
light-clientHelp users initialize and manage an Ethereum beacon chain light client for tracking finalized and optimistic headers.
Light Client is an agent skill from Nethereum/Nethereum. Help users initialize and manage an Ethereum beacon chain light client for tracking finalized and optimistic headers. Use this skill whenever the user mentions beacon chain, light client, sync committee, BLS verification, TrustedHeaderProvider, LightClientService, consensus layer tracking, header staleness, or wants to follow the Ethereum consensus without a full node.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Backend & APIs. It works with Ethereum. The repository describes itself as: Ethereum .Net cross platform integration library. The licence is MIT.
Read from SKILL.md and the folder at commit 229f278. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
dotnetFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
ethereum-beacon-api.publicnode.comAlso links to:
docs.nethereum.comFrom 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.
Light Client loads about 2.4k tokens when it runs. Until then it costs about 96 tokens; SKILL.md has 465 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 found no risky patterns in SKILL.md.
Automated 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 Nethereum/Nethereum at commit 229f278, republished under its MIT licence (© Nethereum). 465 words, ~2,352 tokens.
.claude/skills/light-client/SKILL.md (or your agent's skills folder).The Nethereum light client tracks the Ethereum beacon chain by verifying sync committee BLS aggregate signatures rather than downloading every block. It provides trusted finalized and optimistic execution-layer headers that can be used for state proof verification without running a full node.
eth_getProof against a trusted header. The verified-state skill consumes ITrustedHeaderProvider but does not manage the light client lifecycle.dotnet add package Nethereum.Beaconchain # Beacon API client
dotnet add package Nethereum.Consensus.LightClient # Light client service, store, config
dotnet add package Nethereum.Signer.Bls.Herumi # BLS12-381 signature verification (native)| Chain | Chain ID | Genesis Validators Root |
|---|---|---|
| Mainnet | 1 | 0x4b363db94e286120d76eb905340fdd4e54bfe9f06bf33ff6cf5ad27f511bfe95 |
| Sepolia | 11155111 | 0xd8ea171f3c94aea21ebc42a1ed61052acf3f9209c00e4efbaaddac09ed9b8078 |
| Holesky | 17000 | 0x9143aa7c615a7f7115e2b6aac319c03529df8242ae705fba9df39b79c59fa8b1 |
The CurrentForkVersion changes with each consensus hard fork. Fetch it dynamically from the beacon API rather than hardcoding it.
using Nethereum.Beaconchain;
using Nethereum.Beaconchain.LightClient;
using Nethereum.Consensus.LightClient;
using Nethereum.Consensus.Ssz;
using Nethereum.Hex.HexConvertors.Extensions;
using Nethereum.Signer.Bls;
using Nethereum.Signer.Bls.Herumi;
// 1. Connect to a Beacon API endpoint
var beaconClient = new BeaconApiClient("https://ethereum-beacon-api.publicnode.com");
// 2. Fetch the weak subjectivity root from the latest finality update
var response = await beaconClient.LightClient.GetFinalityUpdateAsync();
var finalityUpdate = LightClientResponseMapper.ToDomain(response);
var weakSubjectivityRoot = finalityUpdate.FinalizedHeader.Beacon.HashTreeRoot();
// 3. Configure for mainnet
var config = new LightClientConfig
{
GenesisValidatorsRoot = "0x4b363db94e286120d76eb905340fdd4e54bfe9f06bf33ff6cf5ad27f511bfe95".HexToByteArray(),
CurrentForkVersion = "0x06000000".HexToByteArray(),
SlotsPerEpoch = 32,
SecondsPerSlot = 12,
WeakSubjectivityRoot = weakSubjectivityRoot
};
// 4. Initialize BLS verification
var nativeBls = new NativeBls(new HerumiNativeBindings());
await nativeBls.InitializeAsync();
// 5. Create and initialize the light client
var store = new InMemoryLightClientStore();
var lightClient = new LightClientService(beaconClient.LightClient, nativeBls, config, store);
await lightClient.InitializeAsync();
// 6. Inspect initial state
var state = lightClient.GetState();
Console.WriteLine("Finalized slot: " + state.FinalizedSlot);
Console.WriteLine("Block number: " + state.FinalizedExecutionPayload.BlockNumber);
Console.WriteLine("Block hash: " + state.FinalizedExecutionPayload.BlockHash.ToHex(true));After initialization, the light client needs periodic updates to track the chain.
Processes up to 4 sync committee period updates at a time. Call at startup or after the client has been offline for more than one period (~27 hours).
var updated = await lightClient.UpdateAsync();
var state = lightClient.GetState();
Console.WriteLine("Current period: " + state.CurrentPeriod);
Console.WriteLine("Finalized slot: " + state.FinalizedSlot);Advances the finalized header without changing the sync committee. Call every few minutes.
var finalityUpdated = await lightClient.UpdateFinalityAsync();
var state = lightClient.GetState();
Console.WriteLine("Finalized block: " + state.FinalizedExecutionPayload.BlockNumber);Fetches the most recent optimistic header, typically seconds behind the chain head. Call every 12 seconds (once per slot) if near-head data is needed.
var optimisticUpdated = await lightClient.UpdateOptimisticAsync();
var state = lightClient.GetState();
Console.WriteLine("Optimistic block: " + state.OptimisticExecutionPayload.BlockNumber);Wraps LightClientService and exposes ITrustedHeaderProvider, the interface consumed by VerifiedStateService for state proof verification.
var trustedProvider = new TrustedHeaderProvider(lightClient);
var finalizedHeader = trustedProvider.GetLatestFinalized();
Console.WriteLine("Finalized block: " + finalizedHeader.BlockNumber);
Console.WriteLine("State root: " + finalizedHeader.StateRoot.ToHex(true));
var optimisticHeader = trustedProvider.GetLatestOptimistic();
Console.WriteLine("Optimistic block: " + optimisticHeader.BlockNumber);
// Historical block hash lookup (up to 256 recent blocks)
var blockHash = trustedProvider.GetBlockHash(finalizedHeader.BlockNumber);Monitor header freshness and react when headers become stale.
trustedProvider.FinalizedStalenessThreshold = TimeSpan.FromMinutes(30);
trustedProvider.OptimisticStalenessThreshold = TimeSpan.FromMinutes(5);
trustedProvider.StaleHeaderDetected += (sender, args) =>
{
Console.WriteLine(args.HeaderType + " header is stale");
Console.WriteLine("Age: " + args.Age.TotalMinutes + " minutes");
};
// Optionally throw instead of returning stale headers
trustedProvider.ThrowOnStaleHeader = true;
try
{
var header = trustedProvider.GetLatestFinalized();
}
catch (StaleHeaderException ex)
{
Console.WriteLine("Header age: " + ex.Age.TotalMinutes + " minutes");
}The ILightClientStore interface controls how light client state is persisted across restarts. InMemoryLightClientStore is provided for testing. For production, implement a persistent store to avoid re-bootstrapping.
public interface ILightClientStore
{
Task<LightClientState?> LoadAsync();
Task SaveAsync(LightClientState state);
}File-based example:
public class FileLightClientStore : ILightClientStore
{
private readonly string _filePath;
public FileLightClientStore(string filePath)
{
_filePath = filePath;
}
public async Task<LightClientState?> LoadAsync()
{
if (!File.Exists(_filePath))
return null;
var json = await File.ReadAllTextAsync(_filePath);
return JsonSerializer.Deserialize<LightClientState>(json);
}
public async Task SaveAsync(LightClientState state)
{
var json = JsonSerializer.Serialize(state);
await File.WriteAllTextAsync(_filePath, json);
}
}
// Usage
var store = new FileLightClientStore("light-client-state.json");
var lightClient = new LightClientService(beaconClient.LightClient, nativeBls, config, store);
await lightClient.InitializeAsync(); // Loads saved state if available| Class | Purpose |
|---|---|
LightClientService | Core service: bootstrap, update, state management |
LightClientConfig | Chain config: genesis root, fork version, slots/epoch |
LightClientState | Full state: finalized/optimistic headers, sync committees, block hash history |
InMemoryLightClientStore | In-memory ILightClientStore for testing |
TrustedHeaderProvider | Simplified ITrustedHeaderProvider wrapper with staleness detection |
TrustedExecutionHeader | BlockHash, BlockNumber, StateRoot, ReceiptsRoot, Timestamp |
BeaconApiClient | Beacon chain REST API client |
LightClientResponseMapper | Maps API responses to domain objects |
NativeBls | BLS12-381 signature verification via Herumi |
UpdateAsync before finality/optimistic updates.HerumiNativeBindings loads a platform-specific native binary (bls_eth.dll/libbls_eth.so/libbls_eth.dylib). Ensure it is in the output directory.CurrentForkVersion changes with each hard fork. Fetch dynamically from the beacon API state fork endpoint.eth_getProof requires the execution node to have state at the block referenced by the light client header. Pruned nodes may not have it.For full documentation, see: https://docs.nethereum.com/docs/consensus-light-client/guide-light-client
© Nethereum, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in plugins/nethereum-skills/skills/light-client of Nethereum/Nethereum.
Open the folder on GitHubat commit 229f278
Light Client 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 |
|---|---|---|---|---|---|---|
| Light Client this skillNethereum/Nethereum | 2.3k | — | ~2.4k | Automated safety check: Pass | MIT | |
| NEAR Intents Swap Integrationinternet-court/internet-court-skill | 6.4k | 2 repos | ~939 | Automated safety check: Pass | Custom licence | |
| Deposit QrSuperior-Trade/superior-skills | 214 | 1 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Explorer Contract Verificationsablier-labs/evm-monorepo | 353 | — | ~1.9k | Automated safety check: Pass | Custom licence | |
| Developing Smart ContractsLFDT-Lineth/lineth-monorepo | 126 | — | ~1.4k | Automated safety check: Pass | AGPL-3.0 | |
| Squash BugbotLFDT-Lineth/lineth-monorepo | 126 | — | ~3.3k | Automated safety check: Pass | Apache-2.0 |
internet-court/internet-court-skill
Builds cross-chain token swaps and bridge flows with the NEAR Intents 1Click API: quotes, deposit addresses, per-chain deposits and status polling.
Superior-Trade/superior-skills
A skill your agent uses when a user needs a QR code or wallet payment URI to fund a Superior-managed EVM wallet on a specific chain before using Lighter, Polymarket, Hyperliquid, or other Superior…
sablier-labs/evm-monorepo
Verify smart contracts on Etherscan, Routescan, and Blockscout block explorers.
LFDT-Lineth/lineth-monorepo
Solidity smart contract development guidelines for Lineth blockchain.
LFDT-Lineth/lineth-monorepo
Triage unresolved bot review comments on a GitHub PR. An agent skill from LFDT-Lineth/lineth-monorepo.
boundless-xyz/boundless
Internal — for Boundless team members only. An agent skill from boundless-xyz/boundless.
Nethereum/Nethereum
Help users batch multiple calls into a single UserOperation and sponsor gas with paymasters using Nethereum Account Abstraction.
Nethereum/Nethereum
Help users run an ERC-4337 bundler using Nethereum — set up in-process or standalone bundlers with mempool, validation, reputation, and JSON-RPC server.
Nethereum/Nethereum
Encode and decode Ethereum ABI data with Nethereum. An agent skill from Nethereum/Nethereum.
Nethereum/Nethereum
Fetch contract ABIs from Sourcify, Etherscan, and 4Byte Directory using the composite ABIInfoStorage pattern (.NET/C).
Nethereum/Nethereum
Help users implement ERC-4337 Account Abstraction with Nethereum — send UserOperations, use smart accounts, route contract calls through a bundler, enable gasless transactions, or work with AA in…
Nethereum/Nethereum
Validate and format Ethereum addresses with Nethereum. An agent skill from Nethereum/Nethereum.
Works with
Categories
Help users initialize and manage an Ethereum beacon chain light client for tracking finalized and optimistic headers. Light Client is an agent skill from Nethereum/Nethereum. Help users initialize and manage an Ethereum beacon chain light client for tracking finalized and optimistic headers.
Light Client fits situations like: the user mentions beacon chain; BLS verification; trustedHeaderProvider; lightClientService.
Run `npx skills add Nethereum/Nethereum --skill light-client -a claude-code`. Or copy the skill folder (plugins/nethereum-skills/skills/light-client in Nethereum/Nethereum) into .claude/skills/light-client in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Nethereum/Nethereum --skill light-client -a codex`. Or copy the skill folder (plugins/nethereum-skills/skills/light-client in Nethereum/Nethereum) into .agents/skills/light-client 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 Nethereum/Nethereum --skill light-client -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/light-client, .gemini/skills/light-client, .github/skills/light-client and .opencode/skills/light-client in your project.
Going by SKILL.md and its folder, Light Client needs the command-line tools its instructions call (dotnet).
SKILL.md names 2 domains. In commands or code: ethereum-beacon-api.publicnode.com; the agent is likely to contact it when it follows the instructions. As links in the text: docs.nethereum.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Light Client is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.4k 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 Light Client: NEAR Intents Swap Integration (internet-court/internet-court-skill, 6.4k stars), Deposit Qr (Superior-Trade/superior-skills, 214 stars), Explorer Contract Verification (sablier-labs/evm-monorepo, 353 stars) and Developing Smart Contracts (LFDT-Lineth/lineth-monorepo, 126 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Nethereum (a GitHub organization) maintains it in Nethereum/Nethereum, which has 2,260 GitHub stars. The repository holds 71 skills in this directory. The repository was last updated on October 5, 2026.
Source: Nethereum/Nethereum on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.