Đúc từ trang của bạn
Có hai cách bán một bộ sưu tập KURV từ trang của chính bạn. Cả hai đều chạy trên Base và Solana, và mọi khoản phí trên chuỗi, giá và quy tắc bán đều vẫn áp dụng: cùng một hợp đồng hoặc chương trình nhận cùng một khoản thanh toán.
| Bạn muốn | Hãy dùng |
|---|---|
| Dán một dòng và có một nút Đúc | Nút Đúc: người mua ký trong cửa sổ KURV |
| Giữ người mua lại trang của bạn bằng bộ kết nối ví của riêng bạn | Ứng dụng khách KURV: người mua ký trong ví của họ |
Hãy gọi tên mạng bằng 84532 (Base Sepolia) hoặc solana:devnet (Solana Devnet). Địa chỉ bộ sưu tập có trong API công khai.
Nút Đúc
Phần tiêu đề “Nút Đúc”<div id="mint" data-kurv-mint data-chain="84532" data-address="0x8354d02d8022f455db9acb235c6f6655c8adabd3"></div><script src="https://testnet.kurv.fun/sdk/mint-button/v1.js" async></script><script> document.getElementById('mint').addEventListener('kurv:mint', (event) => { if (event.detail.status === 'minted') console.log(event.detail.tx, event.detail.tokenIds); });</script>Một lần nhấn sẽ mở cửa sổ KURV. Người mua ký ở đó bằng tài khoản KURV hoặc ví, còn trang của bạn không bao giờ chạm vào ví hay khóa. Đặt data-label, data-background và data-color để dùng lời lẽ và màu sắc của riêng bạn. Nếu trang web của bạn gửi Content-Security-Policy, hãy cho phép https://testnet.kurv.fun trong script-src.
Cửa sổ trước hết chào trang của bạn, và tên trang web chỉ hiện trong đó nếu trang của bạn trả lời từ origin của chính nó. Sau đó cửa sổ cắt liên hệ với trang của bạn, nên không có gì trên trang chạm được vào cửa sổ đang ký. Câu trả lời đến từ origin của KURV, được nhận ra qua giá trị ngẫu nhiên mà lần nhấn đó đã tạo, và chỉ gửi tới origin của trang bạn, rồi script phát kurv:mint trên phần tử:
status | Nghĩa là |
|---|---|
minted | Lượt đúc đã hoàn tất: chain, collection, tx, tokenIds, quantity. Có thể đến sau closed khi lần đăng nhập mất nhiều thời gian |
closed | Một lúc lâu không thấy dấu hiệu nào của cửa sổ, và không có lượt đúc. KURV không bao giờ nói lý do |
blocked | Trình duyệt từ chối mở cửa sổ. Hãy nhờ người mua cho phép |
Trang của bạn không biết gì về người mua không đúc: không biết ví của họ, không biết họ có trong danh sách cho phép hay không. Trang KURV là nơi duy nhất người mua đọc được những câu trả lời đó.
Một trang web gửi Cross-Origin-Opener-Policy: same-origin không thể trả lời lời chào: lượt đúc và câu trả lời vẫn hoạt động, và cửa sổ không hiện tên trang web. Hãy dùng same-origin-allow-popups thay thế. Hãy coi tx là một lời khai cho đến khi máy chủ của chính bạn đã đọc nó trên chuỗi.
Ứng dụng khách KURV
Phần tiêu đề “Ứng dụng khách KURV”Một module ES không có phụ thuộc, kiểu dữ liệu nằm cạnh trong v1.d.ts. Nó hỏi API công khai để lấy báo giá mới và đúng các lệnh gọi cho người mua này, kèm bằng chứng danh sách cho phép, rồi chuyển cho ví của người mua.
import { createKurvClient, eip1193Wallet } from 'https://testnet.kurv.fun/sdk/client/v1.js';
const kurv = createKurvClient();const [account] = await window.ethereum.request({ method: 'eth_requestAccounts' });
const result = await kurv.mint({ chain: '84532', address: '0x8354d02d8022f455db9acb235c6f6655c8adabd3', wallet: eip1193Wallet(window.ethereum, account), quantity: 1, // Show the buyer the amounts, and answer false to sign nothing. review: (plan) => confirm(`Pay at most ${plan.quote.max_total_base_units} base units?`),});Trên Solana, hãy dùng ví Wallet Standard. KURV chỉ ký cho tài khoản của chính tác phẩm mới, còn ví ký và trả tiền với tư cách người mua. Phí mạng và tiền thuê tài khoản tính bằng SOL.
import { createKurvClient, walletStandardWallet } from 'https://testnet.kurv.fun/sdk/client/v1.js';
const kurv = createKurvClient();const result = await kurv.mint({ chain: 'solana:devnet', address: collectionAddress, wallet: walletStandardWallet(wallet, account, 'solana:devnet'),});Bộ kết nối nào cũng dùng được: evmWallet và solanaWallet bọc bộ kết nối của bạn trong vài dòng. Ứng dụng khách không bao giờ thấy khóa.
kurv.prepareMint({ chain, address, wallet, quantity }) trả về kế hoạch và không ký gì cả, và kế hoạch đó chính là báo giá: quote.total_base_units hiện tại, và quote.max_total_base_units, mức tối đa người mua này có thể bị tính bằng đồng tiền của bộ sưu tập, do hợp đồng hoặc chương trình thực thi. Một đợt bán có đồng tiền thứ hai còn tính thêm quote.additional_total_base_units bằng đồng tiền đó, và phí mạng nằm ngoài các khoản này. Bộ sưu tập bán theo giá tăng dần sẽ ký cao hơn báo giá một chút, để một lượt đúc đến trước không làm lượt đúc của người mua thất bại.
Cùng kế hoạch đó qua HTTP, không cần tài khoản và không cần khóa:
curl -X POST https://testnet.kurv.fun/api/v1/collections/84532/0x8354d02d8022f455db9acb235c6f6655c8adabd3/mint-call \ -H 'content-type: application/json' \ -d '{"wallet":"0xYourBuyer","quantity":1}'error.code | Nghĩa là | Cần làm |
|---|---|---|
not_on_allowlist | Đợt bán này dành cho danh sách cho phép của nó | Báo cho người mua |
not_open | Bộ sưu tập hiện không bán | Hiển thị đợt tiếp theo từ hồ sơ bộ sưu tập |
use_window | Đấu giá hoặc một đợt sau đó dùng đồng tiền thứ hai | Mở error.window_url |
rate_limited | Có quá nhiều yêu cầu từ mạng này | Thử lại sau ít phút |
Một trang chạy được
Phần tiêu đề “Một trang chạy được”Hãy lưu nội dung này thành một tệp trên bất kỳ trang https nào, hoặc chạy từ máy của bạn, rồi nhấn nút. Bạn cần ví trình duyệt trên Base Sepolia.
<!doctype html><meta charset="utf-8"><title>Mint</title><button id="mint">Mint</button><p id="said" role="status"></p><script type="module"> import { createKurvClient, eip1193Wallet } from 'https://testnet.kurv.fun/sdk/client/v1.js';
const kurv = createKurvClient(); const said = document.getElementById('said');
document.getElementById('mint').addEventListener('click', async () => { try { const [account] = await window.ethereum.request({ method: 'eth_requestAccounts' }); const result = await kurv.mint({ chain: '84532', address: '0x8354d02d8022f455db9acb235c6f6655c8adabd3', wallet: eip1193Wallet(window.ethereum, account), review: (plan) => confirm(`Pay at most ${plan.quote.max_total_base_units} base units?`), }); said.textContent = result.status === 'minted' ? `Minted: ${result.tx}` : 'Nothing was signed.'; } catch (error) { said.textContent = error.message; } });</script>Tác phẩm chưa được tiết lộ vẫn được niêm phong trong tất cả những điều này: API trả lời các lệnh gọi và số tiền, không bao giờ trả về tệp của bộ sưu tập đã niêm phong. Xem Rủi ro và tuyên bố miễn trừ.
Không có nội dung nào ở đây là lời khuyên tài chính. Hãy đọc Rủi ro và tuyên bố miễn trừ trước khi đúc, mua hoặc bán lại. Quay lại kurv.fun. Chính sách quyền riêng tư. Điều khoản sử dụng. .