Przejdź do głównej zawartości
Otwórz aplikację

Mint z Twojej strony

Są dwa sposoby, by sprzedawać kolekcję KURV ze swojej strony. Oba działają w sieciach Base i Solana, a wszystkie opłaty, ceny i zasady sprzedaży w sieci nadal obowiązują: ten sam kontrakt lub program przyjmuje tę samą płatność.

ChceszUżyj
Wkleić jedną linijkę i dostać przycisk ZmintujPrzycisku Zmintuj: kupujący podpisuje w oknie KURV
Zatrzymać kupującego na swojej stronie z własnym konektorem portfelaKlienta KURV: kupujący podpisuje w swoim portfelu

Sieć wskazujesz przez 84532 (Base Sepolia) lub solana:devnet (Solana Devnet). Adresy kolekcji znajdziesz w Publicznych API.

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

Kliknięcie otwiera okno KURV. Kupujący podpisuje tam kontem KURV lub portfelem, a Twoja strona nigdy nie dotyka portfela ani klucza. Ustaw data-label, data-background i data-color, by użyć własnych słów i kolorów. Jeśli Twoja witryna wysyła Content-Security-Policy, zezwól na https://testnet.kurv.fun w script-src.

Okno najpierw wita się z Twoją stroną, a nazwa witryny pojawia się w nim tylko wtedy, gdy Twoja strona odpowie z własnego origin. Potem okno zrywa więź z Twoją stroną, więc nic na stronie nie może dotknąć okna, w którym trwa podpisywanie. Odpowiedź przychodzi z origin KURV, jest rozpoznawana po losowej wartości wylosowanej przy tym kliknięciu i trafia tylko do origin Twojej strony, a następnie skrypt wywołuje na elemencie kurv:mint:

statusOznacza
mintedMint zakończony: chain, collection, tx, tokenIds, quantity. Może przyjść po closed, gdy logowanie trwało bardzo długo
closedOd jakiegoś czasu brak śladu okna i brak minta. KURV nigdy nie podaje powodu
blockedPrzeglądarka odmówiła otwarcia okna. Poproś kupującego, by na nie zezwolił

Twoja strona nie dowie się niczego o kupującym, który nie mintuje: ani o jego portfelu, ani o tym, czy jest na liście dozwolonych. Tylko strony KURV pokazują kupującemu te odpowiedzi.

Witryna wysyłająca Cross-Origin-Opener-Policy: same-origin nie może odpowiedzieć na powitanie: mint i odpowiedź nadal działają, a okno nie pokazuje nazwy witryny. Użyj zamiast tego same-origin-allow-popups. Traktuj tx jak twierdzenie, dopóki Twój własny serwer nie odczyta go z łańcucha.

Jeden moduł ES bez zależności, jego typy leżą obok w v1.d.ts. Prosi Publiczne API o świeżą wycenę i dokładne wywołania dla tego kupującego, razem z dowodem z listy dozwolonych, i przekazuje je portfelowi kupującego.

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?`),
});

W sieci Solana użyj portfela zgodnego z Wallet Standard. KURV podpisuje tylko za konto nowej pracy, a portfel podpisuje i płaci jako kupujący. Opłaty sieciowe i czynsz za konto są w 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'),
});

Pasuje każdy konektor: evmWallet i solanaWallet owijają Twój w kilku linijkach. Klient nigdy nie widzi klucza.

kurv.prepareMint({ chain, address, wallet, quantity }) odpowiada planem i niczego nie podpisuje, a ten plan to wycena: quote.total_base_units teraz oraz quote.max_total_base_units, czyli najwięcej, co można naliczyć temu kupującemu w monecie kolekcji, co egzekwuje kontrakt lub program. Okno sprzedaży z drugą monetą nalicza dodatkowo quote.additional_total_base_units w tej monecie, a opłata sieciowa dochodzi na wierzch. Kolekcja sprzedawana po rosnącej cenie podpisuje trochę powyżej wyceny, żeby mint, który wszedł wcześniej, nie zepsuł minta kupującego.

Ten sam plan przez HTTP, bez konta i bez klucza:

Okno terminala
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.codeOznaczaCo zrobić
not_on_allowlistTo okno sprzedaży jest dla swojej listy dozwolonychPowiedz o tym kupującemu
not_openKolekcja nie jest teraz w sprzedażyPokaż jej następne okno z rekordu kolekcji
use_windowAukcja albo późniejsze okno z drugą monetąOtwórz error.window_url
rate_limitedZa dużo żądań z tej sieciSpróbuj ponownie za chwilę

Zapisz to jako plik na dowolnej witrynie https albo serwuj z własnego komputera i naciśnij przycisk. Potrzebny jest portfel w przeglądarce w sieci 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>

Nieodsłonięta grafika pozostaje w tym wszystkim zapieczętowana: API odpowiada wywołaniami i kwotami, nigdy plikami zapieczętowanej kolekcji. Zobacz Ryzyka i zastrzeżenia.

Nic tutaj nie jest poradą finansową. Zanim zmintujesz, kupisz lub odsprzedasz NFT do Vault, przeczytaj stronę Ryzyko i zastrzeżenia. Wróć do kurv.fun. Polityka prywatności. Regulamin. .