もしあなたがブロックチェーンや DeFi に興味があるなら、Aave の名前は聞いたことがあるはずです。Aave V3 は、ユーザーが仲介者なしで暗号資産を貸し出して利息を得たり、いつでも引き出したりできる主要な分散型レンディングプラットフォームの一つです。今回、Turnkey による新しい協力により、Aave とやり取りするアプリやツールの構築がぐっと簡単になりました。
Turnkey は安全でスケーラブルな暗号ウォレットインフラを提供する企業で、最近 Turnkey ウォレットを使った Aave トランザクションの扱い方に関する新しいガイドをツイートで公開しました。具体的には、Base ネットワーク上で USDC を承認(approve)、供給(supply)、引き出す際のトランザクション署名方法を順を追って説明しています。Base は Coinbase が構築した Ethereum Layer 2 チェーンで、手数料が低く高速なため DeFi に最適です。
なぜブロックチェーン愛好家にとって重要なのか
ミームトークン領域の開発者やプロジェクトにとって、トレジャリーやユーザー資金を安全に管理することは極めて重要です。Turnkey のアプローチはポリシーエンジンを用いて署名可能なトランザクションを制限することで、追加のセキュリティ層を提供します。つまり、ウォレットが Aave のプールや USDC のような信頼できるコントラクトとしかやり取りできないルールを設定できるため、ハックやミスによるリスクを減らせます。デフィで利回りを狙いたいミームコインコミュニティにとって、不要なリスクを避けつつ DeFi に参加するのに特に有用です。
ガイドの内訳
このガイドは Turnkey のドキュメントサイト(docs.turnkey.com/cookbook/aave)で公開されており、Ethereum とのやり取りに Viem のようなツールを利用しています。以下は簡潔な要点です。
セキュリティポリシーの設定
まず最初に、Turnkey の組織をセットアップし、署名用の non-root ユーザーを作成します。次に root ユーザーを使って、Base 上の USDC コントラクトと Aave のプールへのトランザクションのみを許可するポリシーを作成します。これは API 呼び出しで行います — スニペットは次の通りです。
javascript
const policyName = "Allow API key user to only sign txs to Aave Pool and USDC";
const effect = "EFFECT_ALLOW";
const consensus = approvers.any(user, user.id == '${userId}')
;
const condition = eth.tx.to in ['${USDC_ADDRESS}', '${AAVE_POOL}']
;
const { policyId } = await turnkeyClient.createPolicy({
policyName,
condition,
consensus,
effect,
notes: "",
});
これにより署名者が暴走して資金を別の先に送ってしまうことを防げます。
署名者(Signer)の作成
次に、Viem と互換性のある Turnkey の signer を作成します。
javascript
const turnkeyAccount = await createAccount({
client: turnkeyClient.apiClient(),
organizationId: process.env.TURNKEY_ORGANIZATION_ID!,
signWith: process.env.SIGN_WITH!,
});
その後、Base 用の public と wallet クライアントをセットアップします。
USDC の使用許可(approve)
供給を行う前に、Aave プールがあなたの USDC を使用できるように承認(approve)します。
javascript
const { request: approveReq } = await publicClient.simulateContract({
address: USDC_ADDRESS,
abi: erc20Abi,
functionName: "approve",
args: [AAVE_POOL, parseUnits("10", 6)],
account: walletClient.account,
});
const approveHash = await walletClient.writeContract(approveReq);
レシートが出るまで待てば準備完了です。
USDC を供給して利回りを得る
USDC を供給して利回りを得始めます。
javascript
const poolAbi = parseAbi([
"function supply(address asset,uint256 amount,address onBehalfOf,uint16 referralCode)",
]);
const { request: supplyReq } = await publicClient.simulateContract({
address: AAVE_POOL,
abi: poolAbi,
functionName: "supply",
args: [USDC_ADDRESS, parseUnits("0.5", 6), walletClient.account.address, 0],
account: walletClient.account,
});
// Add gas buffer
const gas = await publicClient.estimateContractGas({...});
const gasWithBuffer = (gas * 130n) / 100n;
const supplyHash = await walletClient.writeContract({
...supplyReq,
gas: gasWithBuffer,
});
これによりあなたの USDC が預けられ、利息が付与される aUSDC トークンが返却されます。
資金の引き出し
資金を引き出したいときは、同様のセットアップで "withdraw" 関数を呼び出します。
javascript
const poolAbi = parseAbi([
"function withdraw(address asset,uint256 amount,address to)",
]);
const { request: withdrawReq } = await publicClient.simulateContract({
address: AAVE_POOL,
abi: poolAbi,
functionName: "withdraw",
args: [USDC_ADDRESS, parseUnits("0.1", 6), walletClient.account.address],
account: walletClient.account,
});
// Gas buffer again
const withdrawHash = await walletClient.writeContract({
...withdrawReq,
gas: gasWithBuffer,
});
これであなたの USDC はウォレットに戻り、獲得した利回りも受け取れます。
まとめ
Turnkey によるこの統合は、特に Base のような効率的なチェーン上で、DeFi をよりアクセスしやすく安全にします。もしあなたがミームトークンプロジェクトを構築しているか、ブロックチェーン技術を試しているなら、詳細はフルガイドをチェックしてください。複雑な暗号操作をツイートを送るような簡単さに近づける一歩です。こうしたツールがミームコインやその先の未来をどのように形作っていくか、今後のアップデートにもご期待ください!