Why
Not a neutral survey — this project already depends on it. The AA card's sponsored-gas and atomic-batch pillars run on thirdweb's 4337 stack, and the D1 gas decision on the agent PoC turns on exactly the tradeoff this note names: thirdweb gives you a paymaster, but only for a 4337 account, which is a different account type from the 7702/7710 one the mandate story is built on. Breadth is convenient right up to the point where one part has to be the best one.
How it works
Reading note across four surfaces (contract deploys, Connect wallets and account abstraction, Engine for backend-signed transactions, the Unity SDK), each rated against doing it directly. The touchpoints that matter here are named: the AA pillars already shipped, backend transactions for the AP2 path, and the Unity track the game card would need.
Related code
# Thirdweb — platform survey across four surfaces (contracts, Connect wallets/AA,
# Engine backend tx, Unity SDK), each rated against doing it directly. Prints a
# feature-comparison table from a dict of {feature: supported_bool}.
SURFACES = {
"Contract deploys": {
"one-click deploy from templates": True,
"custom Solidity, no thirdweb lock-in": True,
"gas-optimized beyond OpenZeppelin defaults": False,
},
"Connect (wallets / AA)": {
"ERC-4337 smart accounts": True,
"sponsored gas (paymaster)": True,
"ERC-7702 / 7710 delegated accounts": False, # different account type — the D1 gap
},
"Engine (backend tx)": {
"server-signed transactions": True,
"managed key custody": True,
"self-hosted signer, zero vendor dependency": False,
},
"Unity SDK": {
"in-game wallet connect": True,
"NFT/inventory bridging": True,
"console-platform support (parity with mobile/web)": False,
},
}
def coverage(features: dict) -> float:
return sum(features.values()) / len(features)
def print_table():
print(f"{'Surface':<26}{'Feature':<45}{'Supported'}")
print("-" * 80)
for surface, features in SURFACES.items():
for feature, supported in features.items():
mark = "yes" if supported else "NO"
print(f"{surface:<26}{feature:<45}{mark}")
if __name__ == "__main__":
print("Thirdweb platform survey — feature coverage by surface\n")
print_table()
print("\nCoverage ratio per surface:")
for surface, features in SURFACES.items():
print(f" {surface:<26} {coverage(features):.0%}")
gaps = [
f"{surface} / {feature}"
for surface, features in SURFACES.items()
for feature, supported in features.items()
if not supported
]
print("\nGaps where 'best-in-class' breaks (breadth's limit):")
for gap in gaps:
print(f" - {gap}")
Where it lands in Jayverse
- Rabbit: thirdweb's paymaster only sponsors gas for 4337 accounts. Since Rabbit's mandate story is built on 7702/7715 accounts, record that switching account types drops thirdweb's sponsored-gas pillar and needs its own paymaster.
- Rabbit: tie the agent PoC's D1 gas decision to this exact tradeoff. Document the 4337-vs-7702 account-type mismatch as the named reason for whichever paymaster path the agent PoC chooses, not just a footnote.
- Game: evaluate thirdweb's Unity SDK against a direct chain integration before committing. The Unity SDK is one candidate for the game's chain bridge; treat it as a benchmarked option, not the default, given the breadth-vs-best-in-class pattern this note names.
Key expressions
| Expression | 뜻 · 쓰이는 자리 |
|---|---|
| breadth | 폭, 다양성 · 여러 기능을 두루 갖춘 넓은 범위를 말할 때. "Breadth bought with best-in-class parts" |
| not neutral | 중립적이지 않은 · 평가자가 이미 이해관계가 얽혀 있을 때. "Not a neutral survey" |
| turn on (a tradeoff) | 바로 그 트레이드오프에 달려 있다 · 결정이 특정 하나의 맞교환 조건에 좌우될 때. "turns on exactly the tradeoff this note names" |
| rated against | ~에 견주어 평가되다 · 비교 대상 기준으로 점수를 매길 때. "each rated against doing it directly" |
| touchpoint | 접점 · 두 시스템이나 프로젝트가 실제로 맞닿는 지점. "The touchpoints that matter here are named" |
| right up to the point where | ~하기 직전까지는 · 어떤 상태가 특정 시점 전까지는 유효할 때. "Breadth is convenient right up to the point where one part has to be the best one" |
| AA | 계정 추상화(Account Abstraction) · 스마트 지갑이 트랜잭션 검증 로직을 프로그래머블하게 만드는 방식, 이 카드에서는 다른 카드("AA card")를 가리키는 약칭으로도 쓰임. "The AA card's sponsored-gas and atomic-batch pillars" |
| AP2 | 에이전트 결제 프로토콜(Agent Payments Protocol) · 에이전트가 대신 결제를 수행할 때 쓰는 표준 경로. "backend transactions for the AP2 path" |
| ERC-4337 | 계정 추상화 표준(ERC-4337) · 번들러·페이마스터로 유저오퍼레이션을 처리하는 스마트 지갑 표준, thirdweb 스택의 기반. "thirdweb's 4337 stack, and the D1 gas decision" |
| EIP-7702/ERC-7710 | 위임형 계정 표준(EIP-7702 / ERC-7710) · EOA에 위임 코드를 붙이는 다른 계정 유형, 만다이트(mandate) 구조의 기반. "a different account type from the 7702/7710 one" |