Boutlet AI Agent x402 Challenge 제출용 기록

hoddukzoa

@hoddukzoa12

Boutlet AI Agent x402 Challenge 제출용 기록

사용한 AI Agent / 도구

  • Hermes Agent
  • Node.js script
  • @x402/fetch
  • @x402/evm ExactEvmScheme
  • viem
  • Base mainnet burner wallet

탐색 흐름

  1. https://www.boutlet.io/llms.txt 확인
  2. /md/channels?keyword=Bug%20Bounty&limit=50에서 bug-bounty 채널 발견
  3. /md/channels/bug-bounty에서 Bug Bounty 채널의 public posts 확인
  4. 1 USDC paywall post 후보 확인
  5. /md/posts/cmq7shdsi00n810qfr66kqh9f에서 paywall metadata 확인
  6. protected markdown endpoint 접근
  7. HTTP 402 Payment RequiredPAYMENT-REQUIRED header 확인
  8. x402 결제 signature 생성 후 재요청
  9. 유료 markdown content unlock 성공

구매 대상

  • Channel: Boutlet Bug Bounty
  • Post ID: cmq7shdsi00n810qfr66kqh9f
  • Paywall Key: pw_758e2e67c553478da5eefc23d1232392
  • Paywall Title: 유료 글 등록 기능 외 8건
  • Protected endpoint:
txt
https://www.boutlet.io/md/posts/cmq7shdsi00n810qfr66kqh9f/paywalls/pw_758e2e67c553478da5eefc23d1232392

결제 요구사항

PAYMENT-REQUIRED header decoded summary:

json
{
  "x402Version": 2,
  "resource": {
    "url": "/md/posts/cmq7shdsi00n810qfr66kqh9f/paywalls/pw_758e2e67c553478da5eefc23d1232392",
    "description": "Protected paywall markdown",
    "mimeType": "text/plain"
  },
  "accepts": [
    {
      "scheme": "exact",
      "network": "eip155:8453",
      "amount": "1000000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "payTo": "0x5cdfD64CE15983e937268Bba7f913916dc756DFb",
      "maxTimeoutSeconds": 300,
      "extra": {
        "tokenSymbol": "USDC",
        "tokenDecimals": 6,
        "settlementMethod": "x402"
      }
    }
  ]
}

결제 결과

  • Payer: 0x8e60d16c0025d9B96f9CDa5F9Fa842172Cba71A9
  • Network: Base mainnet / eip155:8453
  • Token: USDC
  • Amount: 1 USDC
  • Transaction:
txt
0x59d2329d87d5de16308f3a3a422495682aab3bcec44c62eddc1980a53f2ff697

PAYMENT-RESPONSE decoded:

json
{
  "network": "eip155:8453",
  "payer": "0x8e60d16c0025d9B96f9CDa5F9Fa842172Cba71A9",
  "success": true,
  "transaction": "0x59d2329d87d5de16308f3a3a422495682aab3bcec44c62eddc1980a53f2ff697"
}

Agent 실행 로그 요약

txt
[2026-06-17T11:12:11.831Z] Boutlet x402 challenge agent started
[2026-06-17T11:12:11.832Z] Agent/tool: Hermes Agent + Node.js + @x402/fetch + @x402/evm ExactEvmScheme
[2026-06-17T11:12:11.832Z] Payer address: 0x8e60d16c0025d9B96f9CDa5F9Fa842172Cba71A9
[2026-06-17T11:12:12.683Z] Protected endpoint probe -> HTTP 402
[2026-06-17T11:12:12.929Z] Base USDC balance: 2 USDC
[2026-06-17T11:12:12.931Z] Submitting x402 payment signature and retrying protected endpoint...
[2026-06-17T11:12:17.831Z] Paid fetch -> HTTP 200, content-type=text/plain; charset=utf-8, bytes=2740
[2026-06-17T11:12:17.831Z] Decoded PAYMENT-RESPONSE: success=true, transaction=0x59d2329d87d5de16308f3a3a422495682aab3bcec44c62eddc1980a53f2ff697
[2026-06-17T11:12:17.832Z] Unlocked markdown content saved

Unlock된 마크다운 콘텐츠 결과

md
<!-- Protected paywall asset URLs below are temporary signed URLs that expire in 300 seconds. If any asset URL expires, request this markdown again. -->

![](protected image 1 downloaded locally as evidence/unlocked_assets/asset_01.png)

1. 유료 글의 본문을 B에만 작성하면 유료 글 등록이 안되는데(Cannot publish a post with empty paywall) A는 왼쪽 화살표를 눌러야 나오기 때문에 본문을 작성했는데 왜 글 등록이 안되는지 유저가 헷갈리게 됩니다. AB 를 구분하지 않아도 될 것 같아 보입니다.

2. 또 유료 글 입력하다가 delete 나 enter 잘못 누르면 무료 글 등록으로 넘어가는데, 이게 유료 부분인지 무료 부분인지 확인도 어렵고 글 옮기기 귀찮습니다.

1. 유료 블록 내용을 추가하거나 초기화하려면 클릭하세요. > 초기화 기능 필요없는 것 같습니다. 글쓰다가 블록 추가되는 줄 알고 실수로 누르면 당황스러울 것 같습니다.

![](protected image 2 downloaded locally as evidence/unlocked_assets/asset_02.png)

1. 스래시 커맨드: 화면 비율에 따라 사이즈가 조절되는 것 같은데 작을 때 너무 작아서 불편합니다. 텍스트 위로 표기되어야 할 것 같습니다.

![](protected image 3 downloaded locally as evidence/unlocked_assets/asset_03.png)

1. (엄청 사소하긴 한데) 이미지 추가를 선택했을 때, 업로드 버튼이 따로 있는 것보다 회색 긴 사각형의 이미지 추가를 클릭했을 때 업로드할 이미지 선택으로 연결되는게 더 직관적일 것 같습니다.
2. 작성자 본인의 유료 글은 무료글과 똑같이 보여져서 이게 유료로 잘 올라간건지 헷갈립니다. 로그인되지 않은 계정으로 확인해야 하는 번거로움이 있습니다.

![](protected image 4 downloaded locally as evidence/unlocked_assets/asset_04.png)

1. 어떤 조건인지는 모르겠는데, 가끔 ' / ' 를 입력하지 않아도 슬래시 커맨드가 켜지고 잘 안꺼집니다.
2. Auto numbering 작성시 2 이상의 숫자를 임의로 작성하면 글 등록 후에는 전부 1로 통 표기됩니다.
3. 글을 쓰다가 블록을 지우면, 이전 블록이나 바로 위 문장에 text cursor 이동하는게 아니라 화면이 본문 최상단 블록으로 강제 스크롤됩니다.

로컬 증빙 파일

Google Drive : https://drive.google.com/drive/folders/1BIkARjCND-ywpXeY5_tlLkZIuWy85tbs?usp=sharing

  • evidence/01_llms.txt
  • evidence/02_channels_bug_bounty.md
  • evidence/03_channel_bug_bounty.md
  • evidence/04_post_event.md
  • evidence/06_post_paywall_8_items.md
  • evidence/07_payment_required.json
  • evidence/08_payment_response.json
  • evidence/09_unlocked_content.md
  • evidence/10_onchain_receipt_summary.json
  • evidence/unlocked_assets/asset_01.png
  • evidence/unlocked_assets/asset_02.png
  • evidence/unlocked_assets/asset_03.png
  • evidence/unlocked_assets/asset_04.png

(수정됨)

아직 댓글이 없습니다.