---
updatedAt: 2026-08-07T01:38:39.000Z
agentTools:
  projectIndex: https://docs.onechain.nexus/llms.txt
---

# ONE NFT

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

<br />

<Callout icon="✨" theme="default">
  ### **Browse, list, buy, and offer NFTs with one sentence.**

  Drives `MarketplaceV1` (`0x0df4…c3bc`) and the GraphQL indexer behind [crossnft.io](https://www.crossnft.io) by natural language. Listing, buying, offering, and canceling are all supported.
</Callout>

***

## 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.

```text Paste-into-agent prompt
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.
```

<Callout icon="🚧" theme="warn">
  ### **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.
</Callout>

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 ONE skills at once

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

```text Paste-into-agent prompt
Clone https://github.com/to-nexus/cross-skills-suite into a temporary directory and run the bootstrap.sh script inside it to install every ONE 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

| Subcommand       | What it does                             |
| ---------------- | ---------------------------------------- |
| 🟢 `collections` | Trending collections + ranking.          |
| 🟢 `token`       | Single NFT metadata + on-chain info.     |
| 🟢 `tokens`      | Tokens within a collection (filterable). |
| 🟢 `listing`     | Active on-chain listing details.         |
| 🟢 `offers`      | Offers received or sent.                 |
| 🟢 `activities`  | Trade / mint / list event feed.          |
| 🟢 `stats`       | Market stats (volume, floor, depth).     |
| 🟢 `search`      | Unified token / collection search.       |

### Write · signs on-chain tx

| Subcommand          | What it does                                         |
| ------------------- | ---------------------------------------------------- |
| 🔴 `list`           | List your NFT for sale (auto `setApprovalForAll`).   |
| 🔴 `cancel-listing` | Cancel an active listing.                            |
| 🔴 `buy`            | Buy an active listing (auto-approves ERC-20).        |
| 🔴 `offer`          | Create an offer on a token.                          |
| 🔴 `cancel-offer`   | Cancel your offer.                                   |
| 🔴 `accept-offer`   | Accept an incoming offer (auto `setApprovalForAll`). |

<Callout icon="✅" theme="okay">
  ### **Auth bands.** 🟢 Read · 🟡 Read · auth — 🔴 Write · signs tx — 🟣 Write · off-chain auth.
</Callout>

***

## 4. Try it

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

```text 🇰🇷 Korean
이번 주 trending ONE NFT 컬렉션 보여줘
NFT 0xa3bd4e86…fe9e 의 30164746843126 정보 줘
내 NFT 0.5 CROSS 에 리스팅해줘
리스팅 321699 구매해줘
이 NFT 에 0.3 CROSS 오퍼 넣어줘
내가 받은 가장 높은 오퍼 수락해줘
내 리스팅 전부 취소해
24시간 거래량 상위 10개 컬렉션
```

```text 🇺🇸 English
List active ONE 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

| command          | args                                                         | auth | mutation | description                        |
| ---------------- | ------------------------------------------------------------ | ---- | -------- | ---------------------------------- |
| `collections`    | `[--sort volume_24h\|floor] [--limit=20]`                    | —    | read     | Trending collections.              |
| `token`          | `<contract>/<tokenId>`                                       | —    | read     | Single token detail.               |
| `tokens`         | `<contract> [--filter ...]`                                  | —    | read     | Tokens in a collection.            |
| `listing`        | `<listingId>`                                                | —    | read     | On-chain listing detail.           |
| `offers`         | `--received\|--sent [<addr>]`                                | —    | read     | Offers received or sent.           |
| `activities`     | `[<contract>] [--type sale\|mint\|list]`                     | —    | read     | Event feed.                        |
| `stats`          | `[<contract>]`                                               | —    | read     | Market stats.                      |
| `search`         | `<query>`                                                    | —    | read     | Unified search.                    |
| `list`           | `<contract>/<tokenId> <price> [--confirm]`                   | PK   | tx       | Create listing (auto-approve NFT). |
| `cancel-listing` | `<listingId> [--confirm]`                                    | PK   | tx       | Cancel listing.                    |
| `buy`            | `<listingId> [--confirm]`                                    | PK   | tx       | Buy (auto-approve ERC-20).         |
| `offer`          | `<contract>/<tokenId> <price> --currency <addr> [--confirm]` | PK   | tx       | Create offer.                      |
| `cancel-offer`   | `<offerId> [--confirm]`                                      | PK   | tx       | Cancel offer.                      |
| `accept-offer`   | `<offerId> [--confirm]`                                      | PK   | tx       | Accept offer (auto-approve NFT).   |

***

## 6. Safety & credentials

<Callout icon="🛑" theme="error">
  ### **This skill signs on-chain transactions.**
</Callout>

| Rail                    | What it does                                                                                                                                                                             |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Required credential** | `PRIVATE_KEY` (EOA, `0x` + 64 hex) for any write op. Read ops need nothing.                                                                                                              |
| **Auto-approvals**      | `setApprovalForAll(MarketplaceV1, true)` on `list` / `accept-offer`. `approve(paymentToken, MarketplaceV1, total)` on `buy` / `offer` (exact amount, or unlimited with `--max-approve`). |
| **Chain-id check**      | Aborts unless `eth_chainId == 612055`.                                                                                                                                                   |
| `MAX_TRADE_NOTIONAL`    | Per-trade cap in payment-token units. Aborts above the cap.                                                                                                                              |
| `CONFIRM_THRESHOLD`     | Trades above this (default `1`) require explicit confirmation.                                                                                                                           |
| `MIN_GAS_NATIVE`        | CROSS-native floor (default `0.001`). Aborts before signing if short.                                                                                                                    |
| **Whitelist guard**     | Refuses to use a `paymentToken` not in `whitelistedPaymentTokens(addr)`.                                                                                                                 |
| **Activeness guard**    | `cancel` / `buy` / `accept-offer` pre-fetch the on-chain object and abort if `isActive == false`.                                                                                        |

<Callout icon="💡" theme="default">
  ### **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.
</Callout>

***

## 7. Troubleshooting

<Accordion title="listing_not_active" icon="fa-info-circle">
  The listing was already sold or canceled. Verify with: _"check NFT listing 321699"_.
</Accordion>

<Accordion title="Listing isn't visible right after I create it." icon="fa-info-circle">
  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.
</Accordion>

<Accordion title="Offer acceptance failed." icon="fa-info-circle">
  The offerer's ERC-20 balance or approval is now insufficient. They may have used those funds elsewhere after creating the offer.
</Accordion>

<Accordion title="The agent says awaiting_confirm." icon="fa-info-circle">
  You hit the `CONFIRM_THRESHOLD` cap (default 1 unit of the payment token). Re-issue with explicit confirmation.
</Accordion>

<Accordion title="The agent says wrong_chain." icon="fa-info-circle">
  Your `CROSS_RPC_URL` is pointing elsewhere. Remove the override or set it back to `https://mainnet.crosstoken.io:22001/`.
</Accordion>