![見出し画像](https://assets.st-note.com/production/uploads/images/79533647/rectangle_large_type_2_e84af764733e935642aa7e6cd2d170a8.png?width=1200)
thirdwebのデプロイ方法
秘密鍵やスクリプトを処理せずにスマートコントラクトを展開する
コントラクトの自動SDK-javascript、python、node(go / unity / ios / androidまもなく)
直感的なダッシュボードで契約を管理する
チームまたは公用の契約を公開する
アナリティクスでチェーン上で何が起こっているかを見る
🕸️thirdwebdeployとは何ですか?
私たちの使命は、web3アプリとゲームの開発を容易にすることです。現在、当社のプラットフォームは、SDKとダッシュボードを使用してアプリケーションに統合できるさまざまな事前構築されたスマートコントラクト(NFTドロップ、マーケットプレイス、投票、分割など)を提供しています。
私たちはあなたが開発するスマートコントラクトをサポートするためにthirdwebを拡張しています!
これで、独自のスマートコントラクトを展開し、サードWebプラットフォームのすべてのメリット(SDK、ダッシュボード、アナリティクス)を無料で利用できます。
スマートコントラクト(ERC721A、ステーキング、イールドファーミング、独自のものなど)があり、それを使用してアプリを構築したい場合は、この機能が最適です。
Solidityスマートコントラクトを作成し、thirdwebを介して展開し、無料でメリットを享受してください。
自動SDK-契約を簡単に操作できます
ダッシュボードを使用して契約を管理します
ダッシュボードで契約のアクティビティを確認してください
🚀はじめに
(独自のまたはGithubからの)Solidity契約を結んだら、いくつかの手順でサードウェブを有効にできます。
契約パッケージをインストールします
npm
npm install @thirdweb-dev/contracts
SolidityコードでThirdwebContractを拡張する
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
import "@thirdweb-dev/contracts/ThirdwebContract.sol";
contract MyCustomContract is ThirdwebContract {
// ... your contract code
}
デプロイする
npx thirdweb deploy
このコマンドは次のようになります。
ThirdwebContract プロジェクトに含まれるコントラクトを自動検出
プロジェクトをコンパイルします
ABIとバイトコードをIPFSにアップロードする
デプロイリンクを生成する
ウォレット(またはgnosisのようなマルチシグ)を接続できるダッシュボードへのリンクをたどって、ブラウザーに接続されたウォレットからブロックチェーンにコードをデプロイします。秘密鍵のコピー/貼り付けや複雑なスクリプトは必要ありません!
現在、ハードハット、フォージ、トリュフ、ブラウニープロジェクト、さらには生のsolcコンパイルもサポートしています。thirdweb CLIの詳細については、thirdwebCLIgithubリポジトリにアクセスしてください。
基本的なコントラクトのメタデータとパラメーターを指定して、ダッシュボードからコントラクトの特定のインスタンスを直接デプロイできます。
デプロイされると、自動的にサードウェブSDKを使用して、デプロイされたコントラクトとの対話をすぐに開始できます。コントラクトダッシュボードには、開始方法とコントラクトの関数を呼び出す方法が表示されます。
コントラクトがERC20、ERC721、ERC1155などの一般的なEIP仕様を実装している場合、SDKとダッシュボードでこれを自動的に検出します。
つまり、React、Typescript、Pythonで直感的なAPIを利用でき、組み込みのコントラクトで利用できる便利なWebダッシュボードを利用できます。
💻Javascript/ TypescriptSDK
インストール
npm
npm install @thirdweb-dev/sdk
EIP機能の検出:
// interact with your contract without dealing with ABIs
const contract = await sdk.getContract("0x...");
// call any contract function (see dashboard for list of function signatures)
await contract.functions.someCustomFunction();
// if your contract follows the ERC721 standard, contract.nft will be present
const allNFTs = await constract.nft.query.all();
// if your contract extends IMintableERC721, contract.nft.mint will be present
const tx = await contract.nft.mint.to("0x...", {
name: "Cool NFT",
image: readFileSync("some_image.png"),
});
詳細については、ドキュメントをご覧ください。
💻ReactSDK
インストール
npm
npm install @thirdweb-dev/react
コントラクトフック
// Use your contract in a react project
const { contract, isLoading, error } = useContract("0x....");
// if your contract follows the ERC721 standard you use custom "NFT" hooks
const { data: nfts, isLoading, error } = useNFTList(contract);
//if your contract extends IMintableERC721, you can mint using hooks
const { mutate: mint, isLoading, error } = useNFTMint(contract);
mint({
name: "Cool NFT",
image: readFileSync("some_image.png"),
});
詳細については、ドキュメントをご覧ください。
💻PythonSDK
インストール
pip install thirdweb-sdk
EIP機能の検出:
# interact with your contract without dealing with ABIs
contract = sdk.get_custom_contract("0x...")
# read data from your contract
contract.functions.balance().call()
# send transactions
contract.send_transaction("mintTo", ["0x...", "ipfs://..."])
# if your contract follows the ERC721 standard, get convenience APIs
contract.nft.balance()
詳細については、ドキュメントをご覧ください。
🌎ダッシュボード
コントラクトダッシュボードページは、ERC721などの標準機能を自動検出して、コントラクトトークン、さらにはミント機能を一覧表示します。
📜コントラクトSDK
作成するすべてのコントラクトをサポートし、SDKを使用して生の関数を呼び出すことができます。ただし、サードウェブの利便性、API、ダッシュボード機能を完全に活用するには、コントラクトインターフェースを使用してダッシュボードを拡張し、SDKとダッシュボードの特定の機能を有効にすることができます。
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
import "@thirdweb-dev/contracts/ThirdwebContract.sol";
import "@thirdweb-dev/contracts/feature/interface/IMintableERC721.sol";
// Adding IMintableERC721 and implementing it gives you
// SDK -> contract.nft.mint with auto upload to IPFS
// Dashboard -> Mint button on admin dashboard
contract MyCustomContract is ThirdwebContract, IMintableERC721 {
function mintTo(address to, string calldata uri) external returns (uint256) {
// implement your mint function
}
}
![](https://assets.st-note.com/img/1653791109956-HLK59nlcLO.png?width=1200)
詳細については、ドキュメントをご覧ください。
早期アクセスの免責事項
このアルファリリースにはいくつかの制限があります。
Solidity>0.8.0が必要
テストネットでの公開と展開のみをサポート
これは初期のプレビューであるため、この製品を完全にリリースすると、公開されたコントラクトにアクセスできなくなる準備をしてください。
🛠️私たちはあなた
私たちのDiscordに参加してください。#generalチャンネルにアクセスして、次のように言います。「私はビルダーです。ここにアルファがあります。」
フィードバックやバグレポートをエンジニアリングチームと共有できるビルダーアルファチャネルにアクセスするための役割を付与します。
私たちがあなたから知りたい3つのこと(アルファチャンネルでそれらを共有してください):
フローを使った第一印象はどうでしたか?
ツール/ワークフローの好きなところは何ですか?
次に追加したい機能は何ですか?