crane-deployment

Deploy Diamond proxies and facets using Crane's two-factory model.

Updated Jan 22, 2026
One-click install
npx skills add https://github.com/cyotee/cyotee-claude-plugin-crane --skill crane-deployment
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: crane-deployment
Source: https://github.com/cyotee/cyotee-claude-plugin-crane/tree/main/.opencode/skills/crane-deployment
Command: npx skills add https://github.com/cyotee/cyotee-claude-plugin-crane --skill crane-deployment

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Crane Deployment Patterns provides a proven approach to deterministically deploy Diamond proxies and facets using Crane's two-factory system, simplifying cross-chain deployments and post-deploy initialization.

Core Features & Use Cases

  • Two-factory deployment model: Create3Factory and DiamondPackageCallBackFactory coordinate facet deployment, package creation, and proxy initialization.
  • Deterministic addresses: Salt is derived from contract type names to ensure predictable deployments across chains.
  • FactoryService patterns: Library-based deployment flows that compose facets and packages for reusable patterns.
  • Test setup guidance: Ready-to-use patterns for bootstrapping environments like InitDevService and deployment scripts.

Quick Start

Deploy a facet with the Create3Factory, package it with args, then deploy a Diamond proxy using the DiamondPackageCallBackFactory.

Frequently Asked Questions about crane-deployment

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I deploy Diamond proxies and facets deterministically across multiple chains?

Deterministic Diamond deployment uses a two-factory model with Create3Factory and DiamondPackageCallBackFactory, deriving salt from contract type names to ensure predictable proxy and facet addresses across chains.

What is the best way to orchestrate facet deployment and package creation in Solidity?

Orchestrating facet deployment and package creation in Solidity uses FactoryService patterns, deploying a facet with Create3Factory, packaging it with args, then deploying a Diamond proxy via DiamondPackageCallBackFactory.

Can I use salt derived from contract type names for cross-chain Diamond proxy deployments?

Yes, deterministic cross-chain Diamond proxy deployments derive salt directly from contract type names, ensuring the same addresses are generated consistently across different chains without relying on deployer nonce states.

How do I set up a test environment for Diamond proxy initialization in Solidity?

Setting up a Solidity test environment for Diamond proxy initialization uses ready-to-use patterns from the InitDevService library and deployment scripts to bootstrap facets, packages, and proxy callbacks effectively.

Do I need Create3Factory and DiamondPackageCallBackFactory to deploy a Diamond proxy?

Yes, deploying a Diamond proxy through this pattern requires both Create3Factory for initial facet deployment and DiamondPackageCallBackFactory to coordinate package creation and proxy initialization callbacks.