create2-vanity MCP server
2026년 11월 13일 커밋CREATE2 salt를 검색하여 결정론적인 EVM 컨트랙트 주소를 생성하고, 여러 블록체인 네트워크에서 해당 주소의 사용 가능 여부를 확인합니다.
다른 이름 nirholas/create2-vanity
- 스타
- 8
- Tools
- —
- 다운로드, 30일
- —
- 최신 버전
- —
- 마지막 커밋
- 2026년 11월 13일
- 라이선스
- Apache-2.0
create2-vanity MCP란?
create2-vanity은(는) MCP server입니다. CREATE2 salt를 검색하여 결정론적인 EVM 컨트랙트 주소를 생성하고, 여러 블록체인 네트워크에서 해당 주소의 사용 가능 여부를 확인합니다.
프로젝트 README에서 생성된 요약
create2-vanity MCP server 정보
특정하고 예측 가능한 주소로 스마트 컨트랙트를 배포하려는 개발자는 이 도구를 사용하여 원하는 접두사를 생성하는 CREATE2 salt를 검색할 수 있습니다. 이 프로세스는 배포자 주소 및 init code hash와 같은 공개 입력값에만 의존하므로, 개인 키를 전혀 노출하지 않고도 Vanity 주소를 그라인딩할 수 있는 방법을 제공합니다. MCP server는 npx를 통해 로컬에서 실행하거나 Cloudflare Workers와 같은 환경에 배포할 수 있습니다.
사용자는 예측된 주소가 Ethereum, Base 또는 Arbitrum One과 같은 특정 네트워크에서 이미 사용 중인지 확인하는 등 여러 중요한 작업을 수행할 수 있습니다. 이 도구에는 주소 유도, 특정 패턴을 찾는 난이도 추정, EIP-712 그라인딩 증명(attestation) 검증을 위한 특화된 기능이 포함되어 있습니다. create2_availability 도구를 사용하면 개발자는 배포를 시도하기 전에 여러 체인에서 컨트랙트 주소가 비어 있는지 확인할 수 있어, 기존 컨트랙트로 인한 트랜잭션 실패를 방지할 수 있습니다.
활용 사례
- 1Vanity 컨트랙트 주소 찾기특정 hex 접두사로 시작하는 컨트랙트 주소를 생성하는 salt를 검색합니다.
- 2교차 체인 주소 가용성 확인예측된 특정 주소가 서로 다른 블록체인 네트워크에서 이미 사용 중인지 확인합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →아직 인증되지 않았습니다. 서버는 80점 이상의 점수, 심각한 결함 없음, 그리고 검사에 충분한 데이터를 갖추어야 합니다. 검사 방식 · 점수를 높이기 위해 수정할 항목
- 소스 저장소 연결 및 접근 가능nirholas/create2-vanity is public and reachablegithub.com/nirholas/create2-vanity ↗통과
- 패키지가 이 저장소를 소스로 명시검사되지 않음
- 빌드 출처(Sigstore 증명)검사되지 않음
- 오픈 소스 라이선스 (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-11-13github.com/nirholas/create2-vanity ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음검사되지 않음
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
- 모델에 대한 숨겨진 지침 없음0 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기create2-vanity
Grind a deterministic contract address by searching CREATE2 salts, in your browser, then check it is actually free on every chain before you deploy.
Try it without installing anything: npx wrangler deploy --temporary puts this
whole thing (site, API and discovery documents) on a Cloudflare Workers URL in
about thirty seconds and needs no account, no token and no configuration. That
preview is disposable and gets a fresh subdomain every time; npx wrangler deploy
with a Workers-scoped token puts it somewhere permanent.
npx create2-vanity grind --init-code-hash 0x30f9… --prefix beef
npx create2-vanity available 0xBEEF…
A complete tool for deterministic deployments: the browser grinder, the site, an HTTP API, a CLI, an MCP server, cross-chain availability checks, a one-click deploy through the Arachnid proxy, and EIP-712 grind attestations whose central claim any verifier recomputes.
There is no key here
EIP-1014 defines the address:
address = keccak256(0xff ‖ deployer ‖ salt ‖ keccak256(initCode))[12:]
Four public inputs, one hash, twenty bytes out. No private key appears anywhere in that expression, and that single fact changes the whole risk model compared with a wallet grinder:
- a hostile grinder's worst case is a salt that does not work, disproved by one keccak;
- the work can be delegated to anyone, on any machine, with nothing to protect;
- server-side grinding is on by default here, because refusing to do it would be theatre (the wallet-side sibling, evm-vanity, disables its equivalent endpoint for exactly the opposite reason);
- an attestation about the address is checkable, not merely signed.
Three things this does that other CREATE2 tools do not
1. It refuses to let you hash the wrong thing
Init code is the deploy bytecode with the ABI-encoded constructor arguments appended. Hashing the bytecode alone is the most common reason a predicted address turns out wrong, and it is discovered after the grind, after the deployment, and after the money.
Drop a Foundry or Hardhat artifact onto the grinder page, or point the CLI at it, and the tool reads the bytecode, reads the ABI, and tells you in red exactly which constructor arguments are still missing:
$ create2-vanity hash --artifact out/Token.sol/Token.json
✦ 0x9c2f…
Token, 4210 bytes of deploy code
This contract takes 2 constructor arguments:
address owner
uint256 cap
The hash above covers the deploy code alone. Append the ABI-encoded arguments
before grinding, or the address you find is not the address you deploy to.
2. It knows that portability is not availability
The same deployer, init code and salt give the same address on every chain where that deployer exists. That is the reason to use CREATE2, and it comes with a failure mode nobody warns about: the address can already be occupied on one chain while it is free on the rest.
$ create2-vanity available 0x00000000D49195AE81759cd247cFeDD9D0B479df
Ethereum free
Base occupied
Arbitrum One occupied
Robinhood Chain free
…
occupied on 2 chains: deploying there would fail or hit someone else's contract.
That is a real address with a real split. The deploy page checks every chain first, and re-checks the chain you picked immediately before signing, because a table can be minutes old by the time anyone clicks.
3. Its attestations do not ask to be trusted
A grind attestation records who ground a salt, when, and how many attempts it
took, signed as EIP-712 typed data so a contract can recover the signer with
ecrecover. Its central claim is not a claim at all: the verifier re-derives the
address from the attested deployer, salt and init-code hash, so a lie fails in
one keccak with or without the signature.
const result = verifyAttestation(attestation, { issuers });
result.checks.find((c) => c.id === 'derivation').pass; // needs no issuer at all
Losing the issuer key would cost this service its identity and cost users nothing. That is the correct amount of authority for a tool like this to hold.
Install and run
git clone https://github.com/nirholas/create2-vanity
cd create2-vanity
npm install
npm run dev # site on http://localhost:5182, API on http://localhost:8789
npm test # 43 tests
Production, Cloudflare Workers, Docker and Cloud Run: docs/deploy.md.
Install the CLI and library from npm:
npm install create2-vanity
import { create2Address, randomSalt, attestation, chains } from 'create2-vanity';
const salt = randomSalt();
const address = create2Address(deployer, salt, initCodeHash);
const chain = chains.getChain(1);
const verified = attestation.verifyAttestation(certificate);
The package root exports the CREATE2 helpers directly. Address inspection, attestation, chain, difficulty and validation helpers are available as namespaces; the existing documented subpath imports remain supported.
Chains
| Chain | Id | Deterministic deployers |
|---|---|---|
| Ethereum | 1 | all four |
| Base | 8453 | all four |
| Arbitrum One | 42161 | all four |
| Robinhood Chain | 4663 | all four |
| OP Mainnet | 10 | all four |
| Polygon | 137 | all four |
| BNB Chain | 56 | all four |
| Avalanche C-Chain | 43114 | all four |
| Sepolia, Base Sepolia | 11155111, 84532 | all four |
| Robinhood Chain Testnet | 46630 | three (no Coinbase Smart Wallet factory) |
The four are the Arachnid deterministic-deployment-proxy, CreateX, the Safe
proxy factory v1.4.1 and the Coinbase Smart Wallet factory. Every row was
confirmed with eth_getCode against the listed public RPC, and npm test
re-confirms it rather than asking you to take it on faith.
The pieces
| Surface | Where | What it is |
|---|---|---|
| Browser grinder | index.html, src/ui/app.js |
One Web Worker per core over the CREATE2 preimage, with artifact loading. |
| Deploy | deploy.html |
Availability across every chain, then a one-click deploy through the Arachnid proxy. |
| Verify | verify.html |
Re-derive an address, verify an attestation, and the Solidity to do it on chain. |
| Derivation | src/create2.js |
CREATE2, CREATE, init-code hashing, artifact reading, deploy calldata. |
| Attestations | src/attestation.js |
EIP-712 issue and verify, with the type hash a contract needs. |
| Chains | src/chains.js |
The registry, and the probe that re-verifies it. |
| HTTP API | server/ |
One Fetch handler, identical on Node and Cloudflare. |
| CLI | cli/create2-vanity.js |
grind, derive, hash, quote, available, verify, chains. |
| MCP server | mcp/index.js |
Six tools for AI assistants, none of which touch key material. |
CLI
create2-vanity hash --artifact out/Token.sol/Token.json
create2-vanity grind --init-code-hash 0x30f9… --prefix beef --out found.json
create2-vanity derive --deployer 0x4e59… --salt 0xfc1e… --init-code-hash 0x30f9…
create2-vanity derive --sender 0x6ac7… --nonce 3
create2-vanity quote --prefix Beef --rate 700000
create2-vanity available 0xBEEF… --deployer 0x4e59…
create2-vanity verify attestation.json
create2-vanity chains
available exits non-zero when the address is occupied somewhere, so it drops
straight into CI. Add --json to anything for machine-readable output.
MCP
{
"mcpServers": {
"create2-vanity": { "command": "npx", "args": ["-y", "create2-vanity", "mcp"] }
}
}
| Tool | Does |
|---|---|
create2_derive |
CREATE2 or CREATE address derivation. |
create2_quote |
Difficulty and rarity for a pattern. |
create2_grind |
Grind a salt across every core. |
create2_availability |
Is the address free, chain by chain. |
create2_verify_attestation |
Verify an attestation offline. |
create2_chains |
Chains and their deployers. |
HTTP API
Full schema at /openapi.json; agent card at /.well-known/agents.json.
| Endpoint | Does |
|---|---|
POST /api/derive |
CREATE2 from deployer, salt and init code; CREATE from sender and nonce. |
POST /api/quote |
Expected salts, p50/p90/p99, rarity, EIP-55 case multiplier. |
POST /api/grind |
Search salts server-side. |
POST /api/availability |
Is the address still free, chain by chain. |
POST /api/attest |
Sign an EIP-712 grind attestation. |
POST /api/verify |
Verify one, derivation check included. |
GET /api/chains |
The chain and deployer registry. |
GET /api/salt |
A random 32-byte salt. |
Documentation
| Document | Covers |
|---|---|
| docs/derivation.md | CREATE2, CREATE, init code, and the constructor-argument trap. |
| docs/protocol-attestation.md | The EIP-712 format, every verifier check, and the Solidity. |
| docs/deploy.md | Node, Docker, Cloud Run, Cloudflare Workers. |
| docs/discoverability.md | The documents crawlers, assistants and agent runtimes read, and where to submit the project. |
| SECURITY.md | What this promises, and the two things it explicitly does not. |
| CONTRIBUTING.md | Running it and the quality bar. |
The site ships its own documentation page at /docs.html.
Environment
| Variable | Meaning |
|---|---|
ATTESTATION_KEY |
32-byte secp256k1 key (hex) for signing attestations. Unset means an ephemeral per-process key, reported in every response. A signing identity, not a wallet: do not fund it. |
PORT |
Node listen port. Default 8789. |
CREATE2_VANITY_API |
Default remote API for verify. |
Provenance
The browser grinder, its worker, the pattern validation and the hex wordlist were first built inside three.ws and are re-licensed here under Apache-2.0. The derivation and artifact modules, the availability checks, the deployment flow, the attestation format, the Node grinders, the API, the CLI and the MCP server are new in this repository.
Licence
Apache-2.0. See NOTICE for attribution.
Star History
Support the project
If create2-vanity saves you time, star it on GitHub. Stars are how other developers and AI agents find the repositories worth trusting, and they cost you one click.
Know someone who would use it? Post on X · Share on Bluesky · Share on LinkedIn · Submit to Hacker News · Share on Reddit
Built for AI agents too
Coding agents and LLM tooling can read this repo directly: AGENTS.md, llms.txt, llms-full.txt. Point an agent at https://github.com/nirholas/create2-vanity and it has the context it needs.
More from the same author
- All repositories by nirholas: the full catalog, grouped by topic
- three.ws: the platform for 3D AI agents with Solana wallets, a skill marketplace and x402 payments
- Questions or ideas: open an issue or start a discussion
Contributors
create2-vanity MCP 질문
여러 체인에서 특정 주소를 사용할 수 있는지 확인할 수 있나요?
네, 이 도구는 교차 체인 가용성 확인 기능을 제공하여 배포 전 대상 네트워크 전체에서 결정론적 주소가 비어 있는지 확인할 수 있습니다.
생성자 인자(constructor arguments)는 어떻게 처리하나요?
도구가 바이트코드와 ABI를 읽어 init code hash에 ABI 인코딩된 생성자 인자가 포함되도록 보장하며, 이를 통해 잘못된 주소 예측을 방지합니다.