← Docs

ERC-2612 permit の仕組み

1 度の EIP-712 署名で AI に USDC 決済能力を渡す。LemonCake は秘密鍵もカストディ権限も持たない。


課題:AI に毎回承認させたくない

AI エージェントが API を叩くたびにユーザーが approve() を承認するのは現実的でない。 かといって秘密鍵を AI に渡したら、無制限に資金が抜ける危険性。

解:ERC-2612 permit(EIP-2612) — オフチェーン署名で「90 日間 / 1 日 $25 まで spender に転送許可」という条件付き approval をオンチェーンに焼ける。

EIP-712 署名内容

{
  "domain": {
    "name":              "USD Coin",
    "version":           "2",
    "chainId":           8453,                           // Base
    "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"  // USDC on Base
  },
  "types": {
    "Permit": [
      { "name": "owner",    "type": "address" },
      { "name": "spender",  "type": "address" },
      { "name": "value",    "type": "uint256" },
      { "name": "nonce",    "type": "uint256" },
      { "name": "deadline", "type": "uint256" }
    ]
  },
  "message": {
    "owner":    "<Buyer wallet>",
    "spender":  "0x23e0D...E965",                       // LemonCake batch spender
    "value":    "2250000000",                            // 2,250 USDC = $25 × 90 day
    "nonce":    "<USDC.nonces(owner)>",
    "deadline": "<now + 90 day>"
  }
}

USDC v2 contract が ERC-2612 互換なので、追加デプロイ無しでそのまま動く。

3 つの安全装置

1. Value cap($2,250 上限)

USDC contract が value を超える transferFrom必ず reject。 これ以上は USDC スマコン自体が許可しないので、LemonCake バグでもハッキングでも超過不可能。

2. Deadline(90 日で自動失効)

deadline 経過後は署名が無効化。再利用しようとしても USDC contract が reject。 再開するには /start/v2 で再署名するだけ。

3. Off-chain daily cap($25/日)

LemonCake バックエンドが Redis でUTC 日次の累計を管理。 24h 内で $25 を超える PermitCharge リクエストは 402 で reject。 オンチェーンの value cap($2,250)が「最終防衛線」、daily cap は「日常使いの天井」という二重防御。

即時 revoke する方法

permit を即座に無効化したい場合、USDC contract に直接以下を送る:

// Basescan で USDC contract を開く
// https://basescan.org/address/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913#writeProxyContract
// "approve" 関数に以下を入力して Write:
spender: 0x23e0D...E965  // LemonCake batch spender
value:   0

1 tx でゼロ化。ガス代 ~$0.01。LemonCake の介入不要。

spender アドレス(公開)

LemonCake のバッチ spender ウォレットは: 0x23e0D...E965 ↗

このアドレスから出るのは「Buyer → Provider への USDC 転送 tx」と「ガス代用 ETH 消費」のみ。 Basescan で全履歴を監査可能。

関連 EIP / ERC


関連:セキュリティ全文 →