Architecture Patterns
wshobson/agents
Implement proven backend architecture patterns including Clean Architecture, Hexagonal Architecture, and Domain-Driven Design.
Cross-chain development expertise covering bridge architectures (lock-and-mint, burn-and-mint, liquidity networks), interoperability protocols (LayerZero, Chainlink CCIP, Axelar, Wormhole), chain…
$ npx skills add FerroxLabs/wayland --skill cross-chain-developer -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install FerroxLabs/wayland cross-chain-developer --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/FerroxLabs/wayland.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/emerging-tech/cross-chain-developer .claude/skills/cross-chain-developer && 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 "cross-chain-developer" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/emerging-tech/cross-chain-developer into .claude/skills/cross-chain-developer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cross-chain-developer", 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/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/emerging-tech/cross-chain-developerType 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 FerroxLabs/wayland --skill cross-chain-developer -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install FerroxLabs/wayland cross-chain-developer --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/emerging-tech/cross-chain-developer .agents/skills/cross-chain-developer && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cross-chain-developer" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/emerging-tech/cross-chain-developer into .agents/skills/cross-chain-developer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cross-chain-developer", 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 FerroxLabs/wayland --skill cross-chain-developer -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install FerroxLabs/wayland cross-chain-developer --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/emerging-tech/cross-chain-developer .cursor/skills/cross-chain-developer && 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 "cross-chain-developer" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/emerging-tech/cross-chain-developer into .cursor/skills/cross-chain-developer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cross-chain-developer", 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/FerroxLabs/wayland.git --path src/process/resources/skills-library/bodies/skills/emerging-tech/cross-chain-developer--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 FerroxLabs/wayland --skill cross-chain-developer -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install FerroxLabs/wayland cross-chain-developer --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/emerging-tech/cross-chain-developer .gemini/skills/cross-chain-developer && 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 "cross-chain-developer" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/emerging-tech/cross-chain-developer into .gemini/skills/cross-chain-developer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cross-chain-developer", 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 FerroxLabs/wayland cross-chain-developerInstalls 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 FerroxLabs/wayland --skill cross-chain-developer -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .github/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/emerging-tech/cross-chain-developer .github/skills/cross-chain-developer && 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 "cross-chain-developer" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/emerging-tech/cross-chain-developer into .github/skills/cross-chain-developer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cross-chain-developer", 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 FerroxLabs/wayland --skill cross-chain-developer -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install FerroxLabs/wayland cross-chain-developer --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/emerging-tech/cross-chain-developer .opencode/skills/cross-chain-developer && 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 "cross-chain-developer" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/emerging-tech/cross-chain-developer into .opencode/skills/cross-chain-developer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cross-chain-developer", 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.
cross-chain-developerCross-chain development expertise covering bridge architectures (lock-and-mint, burn-and-mint, liquidity networks), interoperability protocols (LayerZero, Chainlink CCIP, Axelar, Wormhole), chain…
Cross Chain Developer is an agent skill from FerroxLabs/wayland. Cross-chain development expertise covering bridge architectures (lock-and-mint, burn-and-mint, liquidity networks), interoperability protocols (LayerZero, Chainlink CCIP, Axelar, Wormhole), chain abstraction patterns, multi-chain deployment strategies, and security considerations for cross-chain applications. Use when the user asks about cross chain developer, related techniques, best practices, or needs guidance in this domain. Do NOT use when the request is outside the scope of cross chain developer or requires…
Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: Wayland - The AI Agent That Perceives. Reasons. Acts. Evolves. The licence is Apache-2.0.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 4c030c7. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are solidity, typescript and template).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
PRIVATE_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Cross Chain Developer loads about 4.1k tokens when it runs. Until then it costs about 143 tokens; SKILL.md has 708 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 FerroxLabs/wayland at commit 4c030c7, republished under its Apache-2.0 licence (© FerroxLabs). 708 words, ~4,105 tokens.
.claude/skills/cross-chain-developer/SKILL.md (or your agent's skills folder).You are an expert cross-chain developer specializing in building applications that operate across multiple blockchain networks. You understand bridge architectures, messaging protocols, chain abstraction, and the unique security challenges of cross-chain systems.
IMPORTANT DISCLAIMER: Cross-chain bridges have been the target of the largest exploits in DeFi history (Ronin $625M, Wormhole $320M, Nomad $190M). Cross-chain development requires extreme security rigor. Always use battle-tested protocols and engage specialist auditors.
Use this skill when:
Do NOT use when:
Source Chain Destination Chain
┌──────────────┐ ┌──────────────┐
│ User locks │ Verification │ Bridge mints │
│ 100 USDC in │ ──────────────> │ 100 bUSDC to │
│ bridge vault │ (relayer/proof) │ user address │
└──────────────┘ └──────────────┘
On return: burn bUSDC on destination, unlock USDC on sourceTradeoffs: Original asset stays on source (canonical), but wrapped token has bridge-specific risk. If bridge is exploited, wrapped tokens become worthless.
Source Chain Destination Chain
┌──────────────┐ ┌──────────────┐
│ Token burned │ Attestation │ Token minted │
│ on source │ ──────────────> │ on dest │
│ (supply -= n)│ (oracle network)│ (supply += n)│
└──────────────┘ └──────────────┘
Total supply across all chains remains constantUse case: CCTP (Circle's Cross-Chain Transfer Protocol) for native USDC transfers. No wrapped tokens needed.
Source Chain Destination Chain
┌──────────────┐ ┌──────────────┐
│ User sends to│ Liquidity pool │ LP sends to │
│ LP on source │ <──────────────> │ user on dest │
│ │ Rebalancing │ │
└──────────────┘ └──────────────┘
No wrapped tokens -- native assets on both sidesExamples: Stargate, Across Protocol. Fast but limited by LP depth.
| Factor | Lock-and-Mint | Burn-and-Mint | Liquidity Network |
|---|---|---|---|
| Speed | 10-30 min | 10-30 min | 1-10 min |
| Token type | Wrapped | Native | Native |
| Capital efficiency | High | High | Low (needs LP) |
| Trust model | Bridge dependent | Oracle network | Economic incentives |
| Best for | Generic token bridging | Stablecoin issuers | Fast transfers |
// Sending a cross-chain message with LayerZero V2
import { OApp, Origin, MessagingFee } from "@layerzerolabs/oapp-evm/contracts/oapp/OApp.sol";
contract CrossChainCounter is OApp {
uint256 public count;
constructor(address _endpoint, address _delegate) OApp(_endpoint, _delegate) {}
// Send increment message to another chain
function incrementRemote(
uint32 _dstEid, // destination endpoint ID
bytes calldata _options
) external payable {
bytes memory payload = abi.encode(count + 1);
_lzSend(
_dstEid,
payload,
_options,
MessagingFee(msg.value, 0),
payable(msg.sender)
);
}
// Receive message from another chain
function _lzReceive(
Origin calldata _origin,
bytes32 _guid,
bytes calldata _message,
address _executor,
bytes calldata _extraData
) internal supersede {
count = abi.decode(_message, (uint256));
}
// Quote the fee for sending
function quote(
uint32 _dstEid,
bytes calldata _options
) external view returns (MessagingFee memory) {
return _quote(_dstEid, abi.encode(count + 1), _options, false);
}
}import {IRouterClient} from "@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouterClient.sol";
import {Client} from "@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol";
import {CCIPReceiver} from "@chainlink/contracts-ccip/src/v0.8/ccip/applications/CCIPReceiver.sol";
contract CrossChainSender {
IRouterClient public router;
IERC20 public linkToken;
function sendMessage(
uint64 destinationChainSelector,
address receiver,
bytes calldata data
) external returns (bytes32 messageId) {
Client.EVM2AnyMessage memory message = Client.EVM2AnyMessage({
receiver: abi.encode(receiver),
data: data,
tokenAmounts: new Client.EVMTokenAmount[](0),
feeToken: address(linkToken),
extraArgs: Client._argsToBytes(
Client.EVMExtraArgsV1({gasLimit: 200_000})
)
});
uint256 fees = router.getFee(destinationChainSelector, message);
linkToken.approve(address(router), fees);
messageId = router.ccipSend(destinationChainSelector, message);
}
}
contract CrossChainReceiver is CCIPReceiver {
constructor(address _router) CCIPReceiver(_router) {}
function _ccipReceive(
Client.Any2EVMMessage memory message
) internal supersede {
address sender = abi.decode(message.sender, (address));
bytes memory data = message.data;
// Process cross-chain message
}
}| Feature | LayerZero V2 | Chainlink CCIP | Axelar | Wormhole |
|---|---|---|---|---|
| Verification | DVN (configurable) | DON (Chainlink oracles) | Validator set | Guardian set |
| Chains supported | 50+ | 20+ | 50+ | 30+ |
| Token transfers | OFT standard | Native token pools | GMP + ITS | Portal bridge |
| Message format | Bytes payload | Structured EVM2Any | GMP bytes | VAA bytes |
| Fee token | Native gas | LINK or native | AXL or native | Native gas |
| Finality model | Configurable | Wait for finality | Threshold signatures | Guardian consensus |
// Using CREATE2 via a factory for deterministic addresses
contract DeterministicFactory {
function deploy(bytes32 salt, bytes calldata bytecode)
external
returns (address deployed)
{
assembly {
deployed := create2(0, add(bytecode, 0x20), mload(bytecode), salt)
}
require(deployed != address(0), "Deploy failed");
}
}
// Pre-compute the address
function computeAddress(bytes32 salt, bytes32 bytecodeHash)
external view returns (address)
{
return address(uint160(uint256(keccak256(abi.encodePacked(
bytes1(0xff),
address(this),
salt,
bytecodeHash
)))));
}// script/DeployMultiChain.s.sol
contract DeployMultiChain is Script {
function run() external {
// Deploy to each chain using fork URLs
string[3] memory chains = ["ethereum", "arbitrum", "base"];
address[3] memory endpoints; // LayerZero endpoints per chain
for (uint i = 0; i < chains.length; i++) {
vm.createSelectFork(vm.envString(
string.concat("RPC_", chains[i])
));
vm.startBroadcast(vm.envUint("PRIVATE_KEY"));
MyOApp app = new MyOApp{salt: bytes32("v1")}(
endpoints[i],
vm.envAddress("OWNER")
);
vm.stopBroadcast();
}
}
}// hardhat.config.ts multi-chain setup
const config: HardhatUserConfig = {
networks: {
ethereum: { url: CONFIG.ETH_RPC, chainId: 1 },
arbitrum: { url: CONFIG.ARB_RPC, chainId: 42161 },
optimism: { url: CONFIG.OP_RPC, chainId: 10 },
base: { url: CONFIG.BASE_RPC, chainId: 8453 },
polygon: { url: CONFIG.POLY_RPC, chainId: 137 },
}
};
// Deployment registry -- track addresses across chains
// deploy-registry.json
{
"MyOApp": {
"1": "0xabc...123",
"42161": "0xabc...123", // same address via CREATE2
"10": "0xabc...123",
"8453": "0xabc...123"
}
}User Intent: "Swap 100 USDC on Arbitrum for ETH on Base"
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ User signs │────>│ Solver fills │────>│ Settlement │
│ intent │ │ order cross- │ │ verifies │
│ (off-chain) │ │ chain │ │ fulfillment │
└─────────────┘ └──────────────┘ └─────────────┘
Benefits: User doesn't choose bridge, solver optimizes routing
Examples: Across, UniswapX, SocketSingle Account, Multi-Chain:
- User has one smart account address (same on all EVM chains)
- Paymaster sponsors gas on destination chain
- Session keys allow automated cross-chain operations
- Bundler submits UserOperations on appropriate chain
ERC-4337 + Cross-chain:
1. User signs UserOp on source chain
2. Bundler detects cross-chain intent
3. Message sent via bridge protocol
4. Destination bundler executes corresponding UserOp1. Message Replay Protection
- Include source chain ID in message payload
- Track processed message IDs (nonce or hash)
- Verify source chain and sender address
2. Finality Requirements
- Ethereum: wait 12-15 minutes (finalized epoch)
- Arbitrum/Optimism: 7-day challenge period for full security
- Fast confirmations trade security for speed
3. Trust Model Assessment
Questions for every bridge integration:
- How many validators/guardians must collude to forge a message?
- What is the economic security (stake at risk)?
- Is there a fraud proof mechanism?
- What happens if the bridge is paused?
4. Rate Limiting
- Cap maximum transfer size per transaction
- Cap maximum volume per time window
- Implement circuit breakers for anomalous activity// WRONG: msg.sender on destination is the bridge relayer, not the user
function receiveMessage(bytes calldata data) external {
require(msg.sender == trustedRelayer); // relayer, not original sender
(address user, uint256 amount) = abi.decode(data, (address, uint256));
// Must verify 'user' was the actual sender on source chain
}
// CORRECT: Verify the cross-chain origin
function _ccipReceive(Client.Any2EVMMessage memory message) internal supersede {
// Verify source chain
require(isAllowedChain[message.sourceChainSelector], "Unknown chain");
// Verify source sender (the contract on the other chain)
address sourceSender = abi.decode(message.sender, (address));
require(sourceSender == trustedRemoteContract, "Unknown sender");
// Now safe to process
}// Foundry fork testing for cross-chain
contract CrossChainTest is Test {
uint256 ethFork;
uint256 arbFork;
function setUp() public {
ethFork = vm.createFork("ETH_RPC_URL");
arbFork = vm.createFork("ARB_RPC_URL");
}
function test_crossChainTransfer() public {
// Step 1: Send on Ethereum
vm.selectFork(ethFork);
vm.prank(user);
sourceBridge.send{value: fee}(arbChainId, amount, user);
// Step 2: Simulate message delivery on Arbitrum
vm.selectFork(arbFork);
// Manually call receive with expected payload
vm.prank(address(arbRelayer));
destBridge.receiveMessage(
abi.encode(user, amount),
ethChainId
);
assertEq(destToken.balanceOf(user), amount);
}
}## Cross Chain Developer Analysis
### Assessment
[Key findings and observations]
### Recommendations
1. [Primary recommendation]
2. [Secondary recommendation]
3. [Additional suggestions]
### Action Items
- [ ] [First action step]
- [ ] [Second action step]
- [ ] [Follow-up task]Input: "Help me with cross chain developer for my current situation"
Output:
Based on your situation, here is a structured approach to cross chain developer:
© FerroxLabs, 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
Just SKILL.md in src/process/resources/skills-library/bodies/skills/emerging-tech/cross-chain-developer of FerroxLabs/wayland.
Open the folder on GitHubat commit 4c030c7
Cross Chain Developer 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 |
|---|---|---|---|---|---|---|
| Cross Chain Developer this skillFerroxLabs/wayland | 608 | — | ~4.1k | Automated safety check: Pass | Apache-2.0 | |
| Architecture Patternswshobson/agents | 40k | — | ~2k | Automated safety check: Pass | MIT | |
| Android Clean Architectureaffaan-m/ECC | 274k | 4 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Architecture Patternsdavila7/claude-code-templates | 32k | 4 repos | ~483 | Automated safety check: Pass | MIT | |
| Architecture Docs Writerprisma/orm | 48k | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Architecture Decision Recordsaffaan-m/ECC | 274k | 4 repos | ~1.8k | Automated safety check: Pass | MIT |
wshobson/agents
Implement proven backend architecture patterns including Clean Architecture, Hexagonal Architecture, and Domain-Driven Design.
affaan-m/ECC
Applies Clean Architecture to Android and Kotlin Multiplatform projects: module layout, dependency rules, UseCases, Repositories and data layer patterns.
davila7/claude-code-templates
Master proven backend architecture patterns including Clean Architecture, Hexagonal Architecture, and Domain-Driven Design to build maintainable, testable, and scalable systems.
prisma/orm
Guides writing and rewriting architecture subsystem docs, ADRs and reference pages so they make sense to a developer with no prior project context.
affaan-m/ECC
Capture architectural decisions as numbered ADR markdown files in docs/adr/ with context, alternatives considered, consequences, and an index README.
affaan-m/ECC
设计、实现并重构端口与适配器系统,具有清晰的领域边界、依赖反转以及跨 TypeScript、Java、Kotlin 和 Go 服务的可测试用例编排。
FerroxLabs/wayland
Install, start, connect, and troubleshoot visualization companion projects for Aion/OpenClaw, with Star-Office-UI as the default recommendation.
FerroxLabs/wayland
OpenClaw usage expert: Helps you install, deploy, configure, and use OpenClaw personal AI assistant.
FerroxLabs/wayland
Set up TVControl end to end: install the connector, start TradingView Desktop with its control port open, load a watchlist export, add the indicators they use, and leave a working chart.
FerroxLabs/wayland
End-to-end guide for designing, running, and analyzing A/B tests including experiment design, statistical significance, sample size calculation, common pitfalls, and advanced testing patterns.
FerroxLabs/wayland
Complete academic writing guide covering thesis and dissertation structure, journal article format using IMRaD, literature review methodology, citation management, the peer review process, and…
FerroxLabs/wayland
Web accessibility expertise covering WCAG 2.2 conformance, audit methodology, ARIA patterns, keyboard navigation, screen reader testing, focus management, form accessibility, and automated vs manual…
Cross-chain development expertise covering bridge architectures (lock-and-mint, burn-and-mint, liquidity networks), interoperability protocols (LayerZero, Chainlink CCIP, Axelar, Wormhole), chain…. Cross Chain Developer is an agent skill from FerroxLabs/wayland. Cross-chain development expertise covering bridge architectures (lock-and-mint, burn-and-mint, liquidity networks), interoperability protocols (LayerZero, Chainlink CCIP, Axelar, Wormhole), chain abstraction patterns, multi-chain deployment strategies, and security considerations for cross-chain applications.
Cross Chain Developer fits situations like: the user asks about cross chain developer; related techniques; needs guidance in this domain; the request is outside the scope of cross chain developer.
Run `npx skills add FerroxLabs/wayland --skill cross-chain-developer -a claude-code`. Or copy the skill folder (src/process/resources/skills-library/bodies/skills/emerging-tech/cross-chain-developer in FerroxLabs/wayland) into .claude/skills/cross-chain-developer in your project. Claude Code loads it when a task matches its description.
Run `npx skills add FerroxLabs/wayland --skill cross-chain-developer -a codex`. Or copy the skill folder (src/process/resources/skills-library/bodies/skills/emerging-tech/cross-chain-developer in FerroxLabs/wayland) into .agents/skills/cross-chain-developer 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 FerroxLabs/wayland --skill cross-chain-developer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cross-chain-developer, .gemini/skills/cross-chain-developer, .github/skills/cross-chain-developer and .opencode/skills/cross-chain-developer in your project.
Going by SKILL.md and its folder, Cross Chain Developer needs credentials named PRIVATE_KEY. Our summary lists: A credential in PRIVATE_KEY.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Cross Chain Developer 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 4.1k tokens (SKILL.md is roughly 16k 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 Cross Chain Developer: Architecture Patterns (wshobson/agents, 40k stars), Android Clean Architecture (affaan-m/ECC, 274k stars), Architecture Patterns (davila7/claude-code-templates, 32k stars) and Architecture Docs Writer (prisma/orm, 48k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
FerroxLabs (a GitHub user) maintains it in FerroxLabs/wayland, which has 608 GitHub stars. The repository holds 1,194 skills in this directory. The repository was last updated on October 6, 2026.
Source: FerroxLabs/wayland on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.