Lumaktaw sa nilalaman
Buksan ang app

Mag-mint mula sa page mo

Dalawang paraan para ibenta ang koleksyon ng KURV mula sa sarili mong page. Gumagana ang dalawa sa Base at sa Solana, at nananatiling umiiral ang bawat on-chain na bayarin, presyo at patakaran ng benta: iisang contract o program ang tumatanggap ng iisang bayad.

Gusto mongGamitin
Mag-paste ng isang linya at magkaroon ng button na Mag-mintAng button na Mag-mint: pumipirma ang mamimili sa window ng KURV
Panatilihin ang mamimili sa page mo gamit ang sarili mong wallet connectorAng client ng KURV: pumipirma ang mamimili sa pitaka niya

Pangalanan ang network gamit ang 84532 (Base Sepolia) o solana:devnet (Solana Devnet). Nasa Mga pampublikong API ang mga address ng koleksyon.

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

Isang pindot ay magbubukas ng window ng KURV. Doon pumipirma ang mamimili gamit ang account sa KURV o pitaka, at hindi kailanman nahahawakan ng page mo ang pitaka o susi. Itakda ang data-label, data-background at data-color para sa sarili mong mga salita at kulay. Kung nagpapadala ng Content-Security-Policy ang site mo, payagan ang https://testnet.kurv.fun sa script-src.

Unang bumabati ang window sa page mo, at lalabas ang pangalan ng site dito kung sasagot lang ang page mo mula sa sarili nitong origin. Pagkatapos, pinuputol nito ang ugnayan sa page mo, kaya walang anumang nasa page ang makakahawak sa window na pumipirma. Galing sa origin ng KURV ang sagot, nakikilala ito sa random na halagang binuo ng pindot na iyon, at sa origin lang ng page mo ito ipinapadala, saka inilalabas ng script ang kurv:mint sa elemento:

statusIbig sabihin
mintedTapos na ang mint: chain, collection, tx, tokenIds, quantity. Maaari itong sumunod sa closed kapag matagal na nawala ang sign-in
closedMatagal nang walang bakas ng window, at walang mint. Hindi sinasabi ng KURV kung bakit
blockedTumanggi ang browser na magbukas ng window. Hilingin sa mamimili na payagan ito

Walang malalaman ang page mo tungkol sa mamimiling hindi nag-mint: hindi ang pitaka niya, hindi kung nasa allowlist siya. Ang mga page ng KURV lang ang lugar kung saan nababasa ng mamimili ang mga sagot na iyon.

Hindi nasasagot ng site na nagpapadala ng Cross-Origin-Opener-Policy: same-origin ang bati: gumagana pa rin ang mint at ang sagot, pero walang pangalan ng site na lalabas sa window. Gamitin na lang ang same-origin-allow-popups. Ituring na claim lang ang tx hanggang mabasa ito ng sarili mong server sa chain.

Isang ES module na walang dependency, nasa tabi nito ang mga type sa v1.d.ts. Humihingi ito sa Mga pampublikong API ng bagong quote at ng eksaktong mga tawag para sa mamimiling ito, kasama ang patunay ng allowlist, at ipinapasa ang mga iyon sa pitaka ng mamimili.

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

Sa Solana, gumamit ng Wallet Standard na pitaka. Pumipirma lang ang KURV para sa sariling account ng bagong piraso, at pumipirma at nagbabayad ang pitaka bilang mamimili. Nasa SOL ang bayad sa network at renta ng account.

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

Gagana ang anumang connector: binabalot ng evmWallet at solanaWallet ang sa iyo sa ilang linya. Hindi nakikita ng client ang susi.

Sumasagot ang kurv.prepareMint({ chain, address, wallet, quantity }) ng plano at wala itong pinipirmahan, at ang planong iyon ang quote: ang quote.total_base_units ngayon, at ang quote.max_total_base_units, ang pinakamalaking maisisingil sa mamimiling ito sa coin ng koleksyon, na ipinapatupad ng contract o program. Ang sale window na may pangalawang coin ay naniningil din ng quote.additional_total_base_units sa coin na iyon, at nasa ibabaw pa nito ang bayad sa network. Ang koleksyong ibinebenta sa tumataas na presyo ay pumipirma nang bahagyang mas mataas sa quote, para hindi mabigo ang mint ng mamimili kapag naunahan siya ng ibang mint.

Ang parehong plano sa HTTP, walang account at walang susi:

Window ng terminal
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.codeIbig sabihinAno ang gagawin
not_on_allowlistPara sa allowlist nito ang bahaging ito ng bentaSabihin sa mamimili
not_openHindi nagbebenta ang koleksyon ngayonIpakita ang susunod nitong bahagi mula sa tala ng koleksyon
use_windowAuction o susunod na bahaging may pangalawang coinBuksan ang error.window_url
rate_limitedMasyadong maraming request mula sa network na itoSubukan ulit maya-maya

I-save ito bilang file sa anumang https na site, o i-serve mula sa sarili mong makina, at pindutin ang button. Kailangan nito ng browser wallet sa 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>

Nananatiling selyado ang hindi pa nabubunyag na art sa lahat ng ito: mga tawag at halaga ang sinasagot ng API, hindi kailanman ang mga file ng selyadong koleksyon. Tingnan ang Mga panganib at paalala.

Walang anuman dito ang payong pinansyal. Basahin ang Mga panganib at paalala bago ka mag-mint, bumili o magbenta pabalik. Bumalik sa kurv.fun. Patakaran sa Privacy. Mga Tuntunin ng Paggamit. .