[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-94914":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":16,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":19,"hasPages":19,"topics":21,"createdAt":10,"pushedAt":10,"updatedAt":22,"readmeContent":23,"aiSummary":24,"trendingCount":15,"starSnapshotCount":15,"syncStatus":25,"lastSyncTime":26,"discoverSource":27},94914,"osnm-z","zunmax\u002Fosnm-z","zunmax","OpenSea NFT Minter by Zun : a single as well as multi-wallet Rust CLI for minting NFTs on Opensea","",null,"Rust",174,86,3,0,18,56.62,"MIT License",false,"main",[],"2026-08-24 04:01:22","\u003Ctable width=\"100%\">\n  \u003Ctr>\n    \u003Ctd align=\"left\" width=\"120\">\n      \u003Cimg src=\"assets\u002Fosnm-z.svg\" alt=\"OSNM-Z Mint Bot logo\" width=\"100\" \u002F>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"right\">\n      \u003Ch1>OSNM-Z\u003C\u002Fh1>\n      \u003Ch3>Single and multi-wallet Rust CLI for OpenSea-hosted mints\u003C\u002Fh3>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n---\n\n\u003Ch2 align=\"center\">Overview\u003C\u002Fh2>\n\nOSNM-Z is a cross-platform Rust minting CLI for OpenSea-hosted SeaDrop NFT collections on OpenSea-supported EVM chains matching the configured RPC. It discovers the collection, authenticates each configured wallet, verifies eligibility, and supports one or more allowlist (WL), first-come-first-served (FCFS), and public phases. Users can mint in **single-wallet mode** or **multiple-wallet mode**, execute concurrent **self-funded multi-wallet** mints, sponsor multi-wallet gas through **EIP-7702 sponsored mode** on compatible chains, and fund up to 10 self-funded manifest wallets atomically in one verified Multicall3 transaction when the canonical deployment is available. Multi-phase selections execute sequentially by start time, and `SPONSORED=true` deliberately selects `WALLETS_FILE` when both wallet sources are configured.\n\n```mermaid\nflowchart TD\n    CLI[\"OSNM-Z mint session\"] --> SINGLE[\"Single wallet\u003Cbr\u002F>WALLET_KEY\"]\n    CLI --> MULTI[\"Multi wallet\u003Cbr\u002F>WALLETS_FILE\"]\n\n    SINGLE --> S1[\"Authenticate one wallet\u003Cbr\u002F>and load its eligibility\"]\n    S1 --> S2[\"Select one or more phases\u003Cbr\u002F>active or scheduled\"]\n    S2 --> S3[\"T-10: capture nonce, fees, balance,\u003Cbr\u002F>metadata, eligibility, and local funding\"]\n    S3 --> S4[\"T-2: fetch and validate\u003Cbr\u002F>wallet-specific calldata\"]\n    S4 --> S5[\"Wallet signs and submits\u003Cbr\u002F>its own EIP-1559 mint transaction\"]\n    S5 --> S6[\"Wallet pays mint value and gas\u003Cbr\u002F>NFT remains in that wallet\"]\n\n    MULTI --> SPONSORED[\"Sponsored EIP-7702\u003Cbr\u002F>maximum 25 wallets\"]\n    MULTI --> SELF[\"Self-funded concurrent mint\u003Cbr\u002F>maximum 10 wallets\"]\n\n    SPONSORED --> P1[\"Verify live EIP-7702 and EIP-1153\u003Cbr\u002F>and exact executor runtime\"]\n    P1 --> P2[\"Authenticate every wallet\u003Cbr\u002F>and keep only eligible candidates\"]\n    P2 --> P3[\"T-15: capture account state and fees\u003Cbr\u002F>sign new or replacement delegations when required\"]\n    P3 --> P4[\"T-2: fetch all wallet actions\u003Cbr\u002F>in one aliased GraphQL request\"]\n    P4 --> P5[\"Validate each action and sign an exact\u003Cbr\u002F>wallet EIP-712 mint operation\"]\n    P5 --> P6[\"Each wallet pays its signed mint value\u003Cbr\u002F>sponsor pays the complete outer gas\"]\n    P6 --> P7[\"Executor isolates each wallet call\u003Cbr\u002F>and verifies the expected safe mint\"]\n    P7 --> P8[\"Successful NFTs are forwarded atomically\u003Cbr\u002F>to the configured recipient\"]\n    P7 --> P9[\"Failed or skipped wallets retain their mint value\u003Cbr\u002F>without undoing other wallet successes\"]\n    P8 --> P10[\"Delegation remains active\u003Cbr\u002F>run opensea-mint mint --undelegate afterward\"]\n    P9 --> P10\n\n    SELF --> F1[\"Authenticate every wallet\u003Cbr\u002F>and keep only eligible candidates\"]\n    F1 --> F2[\"During setup: calculate captured mint value when available,\u003Cbr\u002F>maximum gas, fees, and balance locally\"]\n    F2 --> F3[\"Prompt to top up, recheck, or skip\u003Cbr\u002F>each underfunded wallet\"]\n    F3 --> F3A[\"T-10: refresh nonce, fees, and balance\u003Cbr\u002F>with a non-interactive safety recheck\"]\n    F3A --> F4[\"T-2: fetch all wallet actions\u003Cbr\u002F>in one aliased GraphQL request\"]\n    F4 --> F5[\"Validate actions, then execute wallets\u003Cbr\u002F>concurrently and independently\"]\n    F5 --> F6[\"Each wallet signs, pays mint value,\u003Cbr\u002F>and pays its own EIP-1559 gas\"]\n    F6 --> F7[\"Verify each successful mint receipt\u003Cbr\u002F>and extract the minted NFT assets\"]\n    F7 --> F8[\"If needed, that wallet signs and pays\u003Cbr\u002F>a separate safe-transfer transaction\"]\n    F8 --> F9[\"NFT reaches the configured recipient\u003Cbr\u002F>failures do not stop other wallets\"]\n```\n\n| Wallet mode | Who pays? | Transactions | NFT destination | Failure boundary |\n| --- | --- | --- | --- | --- |\n| **Single wallet**\u003Cbr\u002F>`WALLET_KEY` | The configured wallet pays its mint value and gas | One independently signed mint transaction per selected phase | Remains in the configured wallet | That wallet and phase only |\n| **Multiple wallets: sponsored EIP-7702**\u003Cbr\u002F>`WALLETS_FILE` + `SPONSORED=true` | Each manifest wallet pays its own mint value; `SPONSOR_KEY` pays the complete batch gas | One executor batch per selected phase, carrying authorizations for wallets that need a new or replacement delegation | Forwarded atomically to `RECIPIENT_ADDRESS`, or the sponsor fallback | One wallet can fail without stopping the others; outer execution failure reverts contract execution and value movement, but processed delegations may persist |\n| **Multiple wallets: self-funded concurrent**\u003Cbr\u002F>`WALLETS_FILE` + `SPONSORED=false` | Every manifest wallet pays its own mint value, mint gas, and forwarding gas | Independent wallet transactions run concurrently, followed by safe-transfer transactions when the recipient differs | Forwarded after receipt verification to `RECIPIENT_ADDRESS`, or the sponsor fallback | Each wallet succeeds or fails independently |\n\nThe integrated [`SponsoredMintExecutor`](contracts\u002FREADME.md) is used only by **sponsored EIP-7702 mode**. **Self-funded multi-wallet mode** does not delegate wallets or call the executor. Its interactive funding and top-up gate runs during setup, before approval or scheduling. T-10 and final pre-signing checks are non-interactive safety rechecks; a wallet is skipped only if its balance or required cost became insufficient after setup. EIP-7702 delegation can remain after success or failure, so sponsored users must run `opensea-mint mint --undelegate` and verify revocation.\n\n> [!IMPORTANT]\n> `SPONSORED=true` sponsors the on-chain transaction gas only. Every eligible wallet must hold `eligible mint price × its configured quantity`, plus the local OpenSea action-construction reserve calculated as `GAS_LIMIT × maximum configured fee per gas`. OpenSea may reject wallet-specific calldata construction without that reserve even for a free sponsored mint. The executor spends only the validated mint value from the wallet, so the unused reserve remains there; the sponsor pays EIP-7702 authorization processing, batch execution, mint-call gas, NFT verification, and forwarding gas. Setup verifies both balances before approval.\n\n> [!CAUTION]\n> This project uses OpenSea's private, unstable web API and trusts opaque transaction data returned by OpenSea. It is experimental and high risk. Use only dedicated wallets funded with the amount required for the intended mint.\n\n---\n\n\u003Ch2 align=\"center\">Quick Start\u003C\u002Fh2>\n\n### 1. Installation\n\nThe repository requires Git, Rust, and a native C\u002FC++ compiler. Clone and compile it on the operating system where it will run.\n\n#### **Windows**\n\nInstall [Visual Studio Build Tools](https:\u002F\u002Fvisualstudio.microsoft.com\u002Fvisual-cpp-build-tools\u002F) with **Desktop development with C++**, [Git for Windows](https:\u002F\u002Fgit-scm.com\u002Fdownloads\u002Fwin), and [Rust](https:\u002F\u002Fwww.rust-lang.org\u002Ftools\u002Finstall). Reopen PowerShell, then run:\n\n```powershell\ngit clone https:\u002F\u002Fgithub.com\u002Fzunmax\u002Fosnm-z.git\nSet-Location osnm-z\ncargo install --path . --locked\nopensea-mint --version\n```\n\n#### **Linux or WSL**\n\nInstall the prerequisites for the distribution:\n\n**Ubuntu or Debian:**\n\n```bash\nsudo apt-get update\nsudo apt-get install -y build-essential curl ca-certificates git\n```\n\n**Fedora or RHEL:**\n\n```bash\nsudo dnf install -y gcc gcc-c++ make curl ca-certificates git\n```\n\n**Arch Linux:**\n\n```bash\nsudo pacman -S --needed base-devel curl ca-certificates git\n```\n\nInstall Rust, clone the repository, and install the CLI:\n\n```bash\ncurl --proto '=https' --tlsv1.2 -sSf https:\u002F\u002Fsh.rustup.rs | sh\nsource \"$HOME\u002F.cargo\u002Fenv\"\ngit clone https:\u002F\u002Fgithub.com\u002Fzunmax\u002Fosnm-z.git\ncd osnm-z\ncargo install --path . --locked\nopensea-mint --version\n```\n\n#### **macOS**\n\nInstall Apple's command-line developer tools, then install Rust and the CLI:\n\n```bash\nxcode-select --install\ncurl --proto '=https' --tlsv1.2 -sSf https:\u002F\u002Fsh.rustup.rs | sh\nsource \"$HOME\u002F.cargo\u002Fenv\"\ngit clone https:\u002F\u002Fgithub.com\u002Fzunmax\u002Fosnm-z.git\ncd osnm-z\ncargo install --path . --locked\nopensea-mint --version\n```\n\n### 2. Set Up `.env` and `wallets.json`\n\nCreate the active environment file:\n\n```powershell\n# Windows PowerShell\nCopy-Item .env.example .env\n```\n\n```bash\n# Linux or macOS\ncp .env.example .env\n```\n\nKeep the shared settings and select one wallet mode.\n\n```dotenv\nRPC_URL=https:\u002F\u002Fyour-chain-rpc.example\nFEE_AUTOMATIC=true\nGAS_LIMIT=300000\n```\n\n**Single-wallet mode:**\n\n```dotenv\nWALLET_KEY=0x\u003C64-hex-character-private-key>\n```\n\n**Multiple-wallet mode: self-funded:**\n\n```text\nopensea-mint wallets create --count 10 --quantity 1 --output wallets.json\n```\n\n```dotenv\n# Remove or comment WALLET_KEY from the copied example.\nWALLETS_FILE=wallets.json\nSPONSORED=false\nRECIPIENT_ADDRESS=0x\u003C40-hex-character-recipient-address>\n# SPONSOR_KEY=0x\u003Crequired-only-for-funding-or-recipient-fallback>\n```\n\n**Multiple-wallet mode: sponsored EIP-7702:**\n\n```text\nopensea-mint wallets create --count 25 --quantity 1 --output wallets.json\n```\n\n```dotenv\n# Remove or comment WALLET_KEY from the copied example.\nWALLETS_FILE=wallets.json\nSPONSORED=true\nSPONSOR_KEY=0x\u003C64-hex-character-sponsor-private-key>\nRECIPIENT_ADDRESS=0x\u003C40-hex-character-recipient-address>\n# Add SPONSORED_EXECUTOR_ADDRESS after running deploy-executor.\n```\n\n```text\nopensea-mint deploy-executor\n```\n\nCopy the printed executor address into `.env` as `SPONSORED_EXECUTOR_ADDRESS=0x...`. Keep `.env` and `wallets.json` private; both contain private keys.\n\n### 3. Run the Command\n\nValidate the selected mode, then start the interactive mint session:\n\n```text\nopensea-mint doctor\nopensea-mint mint\n```\n\nIf the installed command is unavailable, run the same arguments through Cargo from the repository root:\n\n```text\ncargo run --release --locked -- doctor\ncargo run --release --locked -- mint\n```\n\nTo use the direct release binary, build it once. On Windows PowerShell:\n\n```powershell\ncargo build --release --locked\n.\\target\\release\\opensea-mint.exe doctor\n.\\target\\release\\opensea-mint.exe mint\n```\n\nOn Linux or macOS:\n\n```bash\ncargo build --release --locked\n.\u002Ftarget\u002Frelease\u002Fopensea-mint doctor\n.\u002Ftarget\u002Frelease\u002Fopensea-mint mint\n```\n\n---\n\n\u003Ch2 align=\"center\">Available Commands\u003C\u002Fh2>\n\n`wallets create` does not load `.env`; help and version output also exit before configuration is loaded. All operational network commands use the active `.env`.\n\n| Command | Mode | What it does | Broadcasts? |\n| --- | --- | --- | --- |\n| `opensea-mint doctor` | All | Validates configuration, wallet input, RPC connectivity, and the active mode | No |\n| `opensea-mint deploy-executor` | **Sponsored setup** | Deploys or verifies the deterministic per-sponsor executor and prints its address | Only when deployment is needed |\n| `opensea-mint mint` | All | Opens the interactive collection, eligibility, phase, quantity, and mint flow | Yes, after confirmation |\n| `opensea-mint mint --fund \u003CNATIVE_AMOUNT>` | **Sponsored or self-funded multi-wallet** | Sends the same native-token amount to every wallet in `wallets.json` | Yes, after confirmation |\n| `opensea-mint mint --withdraw` | **Self-funded multi-wallet** | Withdraws each wallet's safely signable native-token balance to the configured recipient | Yes, after confirmation |\n| `opensea-mint mint --undelegate` | **Multi-wallet cleanup** | Revokes EIP-7702 delegation for every manifest wallet | Yes, after confirmation |\n| `opensea-mint calldata ...` | **Read-only multi-wallet** | Authenticates wallets and fetches validated active-stage mint calldata | No |\n| `opensea-mint wallets create ...` | Local utility | Creates a new private-key manifest without loading `.env` or connecting to a network | No |\n\n### `doctor` and `deploy-executor` parameters\n\n| Command | Command-line parameters | Required configuration |\n| --- | --- | --- |\n| `opensea-mint doctor` | None | A complete **single-wallet**, **self-funded multi-wallet**, or **sponsored multi-wallet** `.env` |\n| `opensea-mint deploy-executor` | None | `RPC_URL`, `FEE_AUTOMATIC`, `GAS_LIMIT`, and `SPONSOR_KEY`; `SPONSORED_EXECUTOR_ADDRESS` is optional for this command |\n\n### `mint` parameters\n\nThe three options are mutually exclusive. Running `mint` without an option starts minting.\n\n| Parameter | Value | Default | Requirements |\n| --- | --- | --- | --- |\n| `--fund \u003CNATIVE_AMOUNT>` | Positive decimal native-token amount with up to 18 decimal places, such as `0.001` | None | `WALLETS_FILE` and `SPONSOR_KEY`; maximum 10 self-funded wallets or 25 sponsored wallets; sponsor must not be a manifest wallet |\n| `--withdraw` | Flag; no value | Off | `WALLETS_FILE` and `SPONSORED=false`; maximum 10 wallets |\n| `--undelegate` | Flag; no value | Off | `WALLETS_FILE`, `SPONSOR_KEY`, and an EIP-7702-compatible RPC |\n\n### `calldata` parameters\n\n```text\nopensea-mint calldata --collection \u003CCOLLECTION> --wallets \u003CWALLETS> --token-id \u003CTOKEN_ID>\n```\n\n| Parameter | Value | Default | Required? |\n| --- | --- | --- | --- |\n| `--collection \u003CCOLLECTION>` | OpenSea slug, OpenSea collection URL, or NFT contract address | None | Yes |\n| `--wallets \u003CWALLETS>`, `-w \u003CWALLETS>` | Path to a version-1 wallet JSON file | None | Yes |\n| `--token-id \u003CTOKEN_ID>` | Unsigned decimal token ID; ERC-721 conventionally uses `0` | `0` | No |\n\nThe read-only request supports at most 250 wallet aliases and requires one unambiguous active stage.\n\n### `wallets create` parameters\n\n```text\nopensea-mint wallets create --count \u003CCOUNT> --quantity \u003CQUANTITY> --output \u003COUTPUT>\n```\n\n| Parameter | Value | Default | Requirements |\n| --- | --- | --- | --- |\n| `--count \u003CCOUNT>` | Positive integer number of wallets | `1` | Generated file must remain within 1 MiB |\n| `--quantity \u003CQUANTITY>` | Positive integer mint quantity stored for every wallet | `1` | Final mint quantity is still limited by the selected phase |\n| `--output \u003COUTPUT>`, `-o \u003COUTPUT>` | New output file path | `wallets.json` | Existing files are never overwritten |\n\n### Help and version parameters\n\n| Parameter | Value | What it does |\n| --- | --- | --- |\n| `--help`, `-h` | No value | Shows top-level help, or command help when placed after a command |\n| `--version`, `-V` | No value | Shows the CLI version when used at the top level |\n\nAny installed-command example can be replaced with `cargo run --release --locked -- \u003Carguments>`. A direct target path can be used instead on the matching operating system.\n\n---\n\n\u003Ch2 align=\"center\">Configuration\u003C\u002Fh2>\n\nAll user configuration lives in one `.env`; there is no separate multi-wallet environment file, TOML configuration, or runtime override layer. `WALLET_KEY` selects **single-wallet mode**, while `WALLETS_FILE=wallets.json` selects **multiple-wallet mode** and loads that manifest. If both remain present, only `SPONSORED=true` resolves the conflict by selecting the manifest; self-funded configuration still requires one wallet source. Unknown or duplicate settings are rejected so misspellings cannot silently change behavior.\n\n### Required settings\n\n| Setting | Example | Purpose |\n| --- | --- | --- |\n| `WALLET_KEY` | `0x...` | One of `WALLET_KEY` or `WALLETS_FILE` is required; this key selects **single-wallet mode** |\n| `WALLETS_FILE` | `wallets.json` | One of `WALLET_KEY` or `WALLETS_FILE` is required; this strict version-1 manifest selects **multiple-wallet mode** |\n| `RPC_URL` | `https:\u002F\u002F...` | Required RPC endpoint for every network command; `wallets create` is the only command that does not load `.env` |\n| `FEE_AUTOMATIC` | `true` | Required Boolean fee-mode selection; `true` is the value supplied by `.env.example` |\n| `GAS_LIMIT` | `300000` | Required nonzero mint-call gas allowance per wallet; `300000` is the value supplied by `.env.example` |\n\nThe chain ID is read from `RPC_URL`; the user does not configure a separate chain name or chain ID. Non-HTTPS RPC URLs are rejected except for local loopback development endpoints.\n\n### Fee and transaction settings\n\n| Setting | Default | Purpose |\n| --- | ---: | --- |\n| `MAX_FEE_PER_GAS_GWEI` | unset | Required manual maximum fee when automatic fees are disabled |\n| `MAX_PRIORITY_FEE_PER_GAS_GWEI` | unset | Required manual priority fee when automatic fees are disabled |\n| `TRANSACTION_MAX_ATTEMPTS` | `3` | Maximum initial submission and same-nonce replacement attempts; range `1-10` |\n| `PENDING_TIMEOUT_SECONDS` | `20` | Time before a pending transaction becomes eligible for replacement; range `1-86400` |\n| `RECEIPT_POLL_BASE_DELAY_MS` | `250` | Initial receipt polling delay; range `50-60000` |\n| `RECEIPT_POLL_MAX_DELAY_MS` | `2000` | Maximum receipt polling delay; range `50-60000` and not below the initial delay |\n| `REPLACEMENT_BUMP_BPS` | `11250` | Replacement fee factor; range `10001-20000` basis points (`11250` means 112.5%) |\n\n### Scheduling and request settings\n\n| Setting | Default | Purpose |\n| --- | ---: | --- |\n| `SCHEDULE_REFRESH_INTERVAL_SECONDS` | `600` | Metadata and eligibility refresh interval for selected phases; range `10-86400` seconds |\n| `OPENSEA_REQUEST_TIMEOUT_MS` | `10000` | General OpenSea request timeout; range `100-120000` ms |\n| `ELIGIBILITY_REQUEST_TIMEOUT_MS` | `5000` | Eligibility request timeout; range `100-120000` ms |\n| `OPENSEA_MAX_ATTEMPTS` | `3` | Maximum attempts for transient metadata, authentication, eligibility, and pre-launch private-stage probes; range `1-10` |\n| `OPENSEA_RETRY_INTERVAL_MS` | `250` | Fixed delay between retryable OpenSea requests, including calldata; range `50-30000` ms |\n| `OPENSEA_CALLDATA_MAX_ATTEMPTS` | `40` | Maximum T-2 calldata requests for not-ready, transient, malformed, or locally inconsistent actions; range `1-1000` |\n\n### Multi-wallet settings\n\n| Setting | Mode | Purpose |\n| --- | --- | --- |\n| `SPONSORED` | **Multiple wallets** | Required Boolean: `true` selects **sponsored EIP-7702 mode**; `false` selects up to 10 concurrent wallets in **self-funded mode** |\n| `RECIPIENT_ADDRESS` | **Multiple wallets** | Receives every minted NFT; may be omitted only when `SPONSOR_KEY` supplies the fallback and must differ from the sponsored executor |\n| `SPONSOR_KEY` | **Sponsored\u002Fdeployment\u002Ffunding\u002Ffallback** | Pays only outer transaction gas in sponsored mints; also pays executor deployment, undelegation, and `opensea-mint mint --fund`, and may supply the fallback recipient |\n| `SPONSORED_EXECUTOR_ADDRESS` | **Sponsored** | Required by sponsored mint and `doctor`; `deploy-executor` can calculate and print it when unset, and its runtime is verified before use |\n| `SPONSORED_OPERATION_DEADLINE_SECONDS` | **Sponsored** | Wallet mint-signature validity window; default `120`, range `30-3600` seconds |\n\n### `.env` discovery\n\nWhen an uninstalled binary inside the project tree is launched from a parent directory, the program searches upward from the binary location first. This prevents an unrelated parent `.env` from shadowing the project file. The installed `opensea-mint` command searches the launch directory and its parents.\n\n---\n\n\u003Cdiv align=\"center\">\n  \u003Ch2>Disclaimer and License\u003C\u002Fh2>\n  \u003Cp>\u003Cstrong>Use this software entirely at your own risk.\u003C\u002Fstrong> It uses an unaudited EIP-7702 executor smart contract and OpenSea's private internal API, which may change, become incompatible, or stop working at any time. Blockchain transactions are irreversible and may result in loss of funds or digital assets.\u003C\u002Fp>\n  \u003Cp>The software is provided \"as is\" without warranties of any kind. To the maximum extent permitted by law, the author and contributors will not be liable for any direct, indirect, incidental, consequential, financial, technical, or other loss, damage, injury, or harm arising from use of, inability to use, or reliance on this software.\u003C\u002Fp>\n  \u003Cp>The project is distributed under the \u003Ca href=\"LICENSE\">MIT License\u003C\u002Fa>.\u003C\u002Fp>\n\u003C\u002Fdiv>\n","OSNM-Z 是一个基于 Rust 开发的命令行工具，用于在 OpenSea 平台（支持 EVM 链）上批量铸造 NFT。它支持单钱包与多钱包模式，可自动发现集合、验证钱包白名单\u002FFCFS\u002F公开阶段资格，并实现并发铸造；多钱包模式下支持 EIP-7702 赞助交易（由执行者统一支付 Gas）或自费并发铸造，同时提供原子化资金预充（Multicall3）与细粒度 Phase 时序调度。适用于 NFT 项目方、社区运营者及资深用户在 OpenSea-hosted SeaDrop 类铸造场景中高效、可控地执行合规批量 mint 操作。",2,"2026-08-18 02:30:03","CREATED_QUERY"]