NFT / Marketplace·NEAR
Paras
NFT marketplace on the NEAR Protocol focused on digital collectibles, comics, and trading-card-style series. Open marketplace contract (`marketplace.paras.near`) with a public REST API and a NEAR-native minting pipeline (`x.paras.near`).
- 01NEAR NFT marketplace integrations
- 02creator-driven series / collection mints
- 03digital comics + trading-card storefronts
- 04secondary marketplace listings
- # No first-party npm SDK; integrate via the public Paras API + NEAR's near-api-js to call marketplace.paras.near and x.paras.near directly.
- pnpm add near-api-js
| Variable | Scope | Description |
|---|---|---|
| NEXT_PUBLIC_NEAR_NETWORK_ID | Client | NEAR network — 'mainnet' or 'testnet'. |
| NEXT_PUBLIC_PARAS_MARKETPLACE_CONTRACT | Client | Paras marketplace contract account (mainnet: `marketplace.paras.near`). |
Use the Paras REST API at `https://api-v2-mainnet.paras.id/` for reads: `GET /token` (filter by `contract_id`, `owner_id`, `token_series_id`), `GET /collections`, `GET /activities`, `GET /offers`. To create a listing, call the marketplace contract via `near-api-js`: the seller calls `nft_approve` on the NFT contract with `msg = JSON.stringify({ price, market_type: 'sale', ft_token_id: 'near' })` and `account_id = 'marketplace.paras.near'` — the marketplace's `nft_on_approve` callback registers the listing. Buyers call `marketplace.paras.near.buy({ nft_contract_id, token_id, ft_token_id, price })` attaching `price` in yoctoNEAR. Paras-native NFTs use `x.paras.near` (token series → token ID model: `nft_mint(token_series_id, receiver_id)`).
- ⚑NEAR's storage staking model: minting and listing both require the caller to attach storage deposits (often 0.01–0.1 NEAR); the call reverts with `Not enough storage deposit` rather than auto-charging — surface this to the user.
- ⚑Royalty enforcement on Paras: royalties are set at token-series creation and split among up to 10 receivers; marketplace pays them at settlement, but third-party NEAR marketplaces (e.g. Mintbase) may not honor them — assume worst-case off-Paras.
- ⚑Marketplace fee is 2.5% (treasury); confirm by reading `marketplace.paras.near.get_market_data` because the contract is upgradable.
- ⚑Chain coverage is NEAR mainnet only; no EVM compatibility — token IDs are strings (e.g. `'1234:5'`) not uint256, and contracts are accounts (e.g. `x.paras.near`) not addresses.
- ⚑Listing flow uses the NEP-178 `nft_approve` pattern: a re-approval is required after every transfer or the marketplace's listing becomes invalid silently (the NFT remains in the wallet but `buy` reverts).
- ⚑Paras token series cap supply at series-creation time — once a series is minted out, you must create a new series; `nft_mint` on a closed series fails with `Series capped`.