CROSS NFT

Browse, list, buy, and offer CROSS NFTs with one sentence. Drives MarketplaceV1 and the GraphQL indexer behind crossnft.io.


Browse, list, buy, and offer NFTs with one sentence.

Drives MarketplaceV1 (0x0df4…c3bc) and the GraphQL indexer behind crossnft.io by natural language. Listing, buying, offering, and canceling are all supported.


1. Install

The block below is a natural-language prompt to paste into your AI agent — not a terminal command. Your agent reads the intent and runs git clone + bash install.sh for you.

Clone https://github.com/to-nexus/skill-cross-nft into a temporary directory and run the install.sh script inside it to install the cross-nft skill into my environment. Tell me the result in one line when you're done.
🚧

Bash execution required.

The skill installs Node packages and uses viem. Environments without shell access — Claude.ai (web), ChatGPT (web), Gemini (web) — cannot run it. See §2.

After install, just talk to your agent. For write actions, ask it to "add PRIVATE_KEY to my cross-nft .env" first. Listings and accept-offer auto-run setApprovalForAll; buys and offers auto-approve the ERC-20.

Install all CROSS skills at once

Want every CROSS skill (Forge, NFT, Shop, Explorer, DEX, WAVE, Rewards, Prediction, Bridge, Stake, Points) in one shot? Use the suite bootstrap — same natural-language pattern.

Clone https://github.com/to-nexus/cross-skills-suite into a temporary directory and run the bootstrap.sh script inside it to install every CROSS skill into my environment. Tell me which skills succeeded and which failed.

2. Where it runs

✅ Supported · CLI agents with Bash access

Claude Code (CLI) · OpenClaw · Cursor Composer · Codex CLI · Aider · Goose · Gemini CLI · OpenInterpreter · any other Bash-capable CLI.

❌ Not supported · Browser / hosted only

Claude.ai (web) · ChatGPT (web) · Gemini (web) · Copilot Chat (web). These environments can't execute viem / npm dependencies. Even with the SKILL.md as context, the agent only produces meta responses — the actual on-chain calls never run.


3. What you can do

Read · no auth

SubcommandWhat it does
🟢 collectionsTrending collections + ranking.
🟢 tokenSingle NFT metadata + on-chain info.
🟢 tokensTokens within a collection (filterable).
🟢 listingActive on-chain listing details.
🟢 offersOffers received or sent.
🟢 activitiesTrade / mint / list event feed.
🟢 statsMarket stats (volume, floor, depth).
🟢 searchUnified token / collection search.

Write · signs on-chain tx

SubcommandWhat it does
🔴 listList your NFT for sale (auto setApprovalForAll).
🔴 cancel-listingCancel an active listing.
🔴 buyBuy an active listing (auto-approves ERC-20).
🔴 offerCreate an offer on a token.
🔴 cancel-offerCancel your offer.
🔴 accept-offerAccept an incoming offer (auto setApprovalForAll).

Auth bands. 🟢 Read · 🟡 Read · auth — 🔴 Write · signs tx — 🟣 Write · off-chain auth.


4. Try it

Paste any prompt into your agent in any language — the skill activates the same way.

이번 주 trending CROSS NFT 컬렉션 보여줘
NFT 0xa3bd4e86…fe9e 의 30164746843126 정보 줘
내 NFT 0.5 CROSS 에 리스팅해줘
리스팅 321699 구매해줘
이 NFT 에 0.3 CROSS 오퍼 넣어줘
내가 받은 가장 높은 오퍼 수락해줘
내 리스팅 전부 취소해
24시간 거래량 상위 10개 컬렉션
List active CROSS NFT collections
Show me NFT 0xa3bd…/30164746843126
List my NFT at 0.5 CROSS
Buy listing 321699
Make a 0.3 CROSS offer on this NFT
Accept the highest offer I received
Cancel all my listings
Top 10 collections by 24h volume

5. Command reference

commandargsauthmutationdescription
collections[--sort volume_24h|floor] [--limit=20]readTrending collections.
token<contract>/<tokenId>readSingle token detail.
tokens<contract> [--filter ...]readTokens in a collection.
listing<listingId>readOn-chain listing detail.
offers--received|--sent [<addr>]readOffers received or sent.
activities[<contract>] [--type sale|mint|list]readEvent feed.
stats[<contract>]readMarket stats.
search<query>readUnified search.
list<contract>/<tokenId> <price> [--confirm]PKtxCreate listing (auto-approve NFT).
cancel-listing<listingId> [--confirm]PKtxCancel listing.
buy<listingId> [--confirm]PKtxBuy (auto-approve ERC-20).
offer<contract>/<tokenId> <price> --currency <addr> [--confirm]PKtxCreate offer.
cancel-offer<offerId> [--confirm]PKtxCancel offer.
accept-offer<offerId> [--confirm]PKtxAccept offer (auto-approve NFT).

6. Safety & credentials

🛑

This skill signs on-chain transactions.

RailWhat it does
Required credentialPRIVATE_KEY (EOA, 0x + 64 hex) for any write op. Read ops need nothing.
Auto-approvalssetApprovalForAll(MarketplaceV1, true) on list / accept-offer. approve(paymentToken, MarketplaceV1, total) on buy / offer (exact amount, or unlimited with --max-approve).
Chain-id checkAborts unless eth_chainId == 612055.
MAX_TRADE_NOTIONALPer-trade cap in payment-token units. Aborts above the cap.
CONFIRM_THRESHOLDTrades above this (default 1) require explicit confirmation.
MIN_GAS_NATIVECROSS-native floor (default 0.001). Aborts before signing if short.
Whitelist guardRefuses to use a paymentToken not in whitelistedPaymentTokens(addr).
Activeness guardcancel / buy / accept-offer pre-fetch the on-chain object and abort if isActive == false.
💡

Hosted-agent tip. Use a disposable wallet with only as much MGT / CROSS as you plan to spend that session. The skill keeps PRIVATE_KEY in process.env and never echoes it back to the transcript.


7. Troubleshooting

listing_not_active

The listing was already sold or canceled. Verify with: "check NFT listing 321699".

Listing isn't visible right after I create it.

The GraphQL indexer has a 5–15 s ingestion lag. The on-chain tx is final the moment it confirms; the indexer just hasn't caught up.

Offer acceptance failed.

The offerer's ERC-20 balance or approval is now insufficient. They may have used those funds elsewhere after creating the offer.

The agent says awaiting_confirm.

You hit the CONFIRM_THRESHOLD cap (default 1 unit of the payment token). Re-issue with explicit confirmation.

The agent says wrong_chain.

Your CROSS_RPC_URL is pointing elsewhere. Remove the override or set it back to https://mainnet.crosstoken.io:22001/.


© 2025 NEXUS Co., Ltd. All Rights Reserved.