Workspace IndexKnowledge Notes › Thirdweb — platform survey

#183PoC

Thirdweb — platform survey

Contracts, wallets/AA, backend tx, Unity SDK — breadth bought with best-in-class parts.

Reference — docs/features/thirdweb.md. Already used in the AA card's pillars ②③.

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

Words and phrases from this page worth keeping, with the Korean meaning and the sentence they come from.

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"

← All Knowledge Notes · Workspace Index · Top ↑

Thirdweb — 플랫폼 서베이

컨트랙트·지갑/AA·백엔드 tx·Unity SDK — 각 부문 1등을 내주고 산 넓이.

참조 — docs/features/thirdweb.md. AA 카드의 ②③ 요소에서 이미 쓰고 있습니다.

중립적 서베이가 아닙니다 — 이 프로젝트가 이미 의존하고 있습니다. AA 카드의 가스 대납·원자적 배치 요소가 thirdweb의 4337 스택 위에서 돌고, 에이전트 PoC의 D1 가스 결정이 정확히 이 노트가 짚는 트레이드오프에 달려 있습니다: thirdweb은 paymaster를 주지만 4337 계정에 한해서이고, 그건 위임 서사가 딛고 선 7702/7710 계정과 다른 종류입니다. 넓이는 편리합니다 — 어느 한 부분이 반드시 최고여야 하는 지점 전까지는.

동작 방식

네 표면(컨트랙트 배포, Connect 지갑·계정 추상화, 백엔드 서명 트랜잭션용 Engine, Unity SDK)에 걸친 정독 노트로, 각각을 직접 구현하는 경우와 견줍니다. 여기서 의미 있는 접점은 명시되어 있습니다 — 이미 나간 AA 요소들, AP2 경로의 백엔드 트랜잭션, 그리고 게임 카드가 필요로 할 Unity 트랙.

관련 코드

# 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}")

Jayverse에서의 위치

  • Rabbit: thirdweb의 paymaster는 4337 계정에만 가스를 후원한다. Rabbit의 mandate 구조는 7702/7715 계정 위에 있으므로, 계정 타입을 바꾸면 thirdweb의 가스 후원 축이 빠지고 별도 paymaster가 필요하다는 것을 기록해 둔다.
  • Rabbit: 에이전트 PoC의 D1 가스 결정을 이 트레이드오프와 명시적으로 연결한다. 4337 대 7702 계정 타입 불일치를 에이전트 PoC가 어떤 paymaster 경로를 택하든 그 이유로 문서화한다.
  • Game: thirdweb Unity SDK를 직접 체인 연동과 비교 평가한 뒤 채택한다. Unity SDK는 게임의 체인 브리지 후보 중 하나다. 이 글이 말하는 범용성 대 최상 파트 패턴을 감안해 기본값이 아니라 벤치마크 대상으로 다룬다.

핵심 표현

이 페이지의 영어 본문에서 배울 만한 단어와 표현, 뜻과 나온 자리.

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"

← 전체 기술 노트 · 워크스페이스 인덱스 · 맨 위 ↑