ข้ามไปยังเนื้อหาหลัก
เรียนรู้คู่มือการควบคุมการใช้จ่ายของตัวแทน
คู่มือ

ตั้งค่าการควบคุมการใช้จ่ายของตัวแทนที่สามารถอยู่รอดจากการฉีดคำสั่ง.

8 นาที
คำตอบสั้น

ตั้งค่าการอนุญาตการใช้จ่ายในแดชบอร์ด - การอนุญาตต่อช่วงเวลาและขีดจำกัดต่อการทำธุรกรรม - และแบ็กเอนด์จะบังคับใช้กับการชำระเงินทุกครั้ง เนื่องจากมันอยู่ในแบ็กเอนด์และ API เป็นแบบอ่านอย่างเดียว การฉีดคำสั่งที่แฮ็กแผนของตัวแทนยังไม่สามารถเพิ่มขีดจำกัดได้ โค้ดของคุณอ่านการอนุญาตผ่าน API เพื่อแสดงหรือวางแผนรอบๆ

ข้อกำหนดเบื้องต้น

ก่อนที่คุณจะเริ่ม.

  • เอเจนต์ที่มีอยู่ (ดูที่ add-payments-to-agent guide)
  • การเข้าถึงแดชบอร์ดสำหรับพื้นที่ทำงานที่เป็นเจ้าของเอเจนต์ - สิทธิ์จะถูกตั้งค่าไว้ที่นั่น ไม่ใช่ผ่าน API.
  • แนวคิดคร่าว ๆ ของการใช้จ่ายรายวันที่คาดหวัง - การอนุญาตควรอยู่ที่ 2-3x การใช้งานปกติ ไม่ใช่ 100x ดังนั้นมันจึงสามารถรับน้ำหนักได้จริง.
  • คีย์ API สำหรับอ่านการอนุญาต (คีย์ sk_test_ ใช้ได้สำหรับคู่มือนี้)
  • ความคุ้นเคยกับ แนวคิดนโยบายการใช้จ่ายของเอเจนต์ - คู่มือนี้เป็นคู่มือการดำเนินงานของมัน
ขั้นตอนที่ 1 จาก 4

ตั้งค่าการอนุญาตในแดชบอร์ด.

เปิดตัวแทนในแดชบอร์ด Blockchain0x และตั้งค่าหมายเลขสองหมายเลข: การอนุญาตในช่วงเวลา (หนึ่งวัน, หนึ่งสัปดาห์, หรือ 30 วัน) และขีดจำกัดต่อการทำธุรกรรม การอนุญาตกำหนดกรณีที่เลวร้ายที่สุดตลอดทั้งช่วงเวลา; ขีดจำกัดต่อการทำธุรกรรมหยุดคำขอที่ผิดปกติหนึ่งรายการจากการใช้จ่ายทั้งหมดในครั้งเดียว นี่เป็นการกระทำในแดชบอร์ดโดยเจตนา - มันคือขอบเขตที่ตั้งค่าด้วยมนุษย์ที่ตัวแทนทำงานอยู่

Amounts are USDC base units (6 decimals). An allowance_wei of "20000000" is 20 USDC; a per_tx_wei of "2000000" is 2 USDC. The period is a period_seconds value: 86400 for a day, 604800 for a week, 2592000 for 30 days.

ขั้นตอนที่ 2 จาก 4

อ่านการอนุญาตผ่าน API.

โค้ดของคุณสามารถดึงสิทธิ์ที่ใช้งานอยู่เพื่อแสดงใน UI หรือให้เอเจนต์ตรวจสอบว่ามีพื้นที่เหลือเท่าใดก่อนที่จะลองชำระเงิน เส้นทางเป็นแบบอ่านอย่างเดียว - ไม่มีจุดสิ้นสุดที่เปลี่ยนแปลง ซึ่งเป็นเหตุผลที่คีย์ของเอเจนต์ไม่สามารถขยายขีดจำกัดของตนเองได้

อ่าน (curl)
curl https://api.blockchain0x.com/v1/agents/agt_123/spend-permissions \
  -H "Authorization: Bearer $BLOCKCHAIN0X_API_KEY"
การตอบสนอง
{
  "allowance_wei": "20000000",
  "per_tx_wei": "2000000",
  "period_seconds": 86400,
  "start_at": "2026-05-15T00:00:00Z",
  "end_at": null,
  "revoked_at": null
}
ขั้นตอนที่ 3 จาก 4

กำหนดเวลาให้มัน หรือเพิกถอนมัน.

สองฟิลด์ทำให้สิทธิ์กลายเป็นการควบคุมที่มีระยะเวลาจำกัด start_at และ end_at กำหนดช่วงเวลาที่มันมีผล ดังนั้นคุณสามารถเตรียมงบประมาณสำหรับงานที่กำหนดไว้ล่วงหน้าหรือปล่อยให้หมดอายุเอง; นอกเหนือจากช่วงเวลานั้นจะไม่อนุญาตอะไร revoked_at คือสวิตช์ปิด: เพิกถอนจากแดชบอร์ดและการอนุญาตจะลดลงเป็นศูนย์สำหรับการชำระเงินใด ๆ ที่ประเมินหลังจากนั้น

เพื่อหยุดที่แน่นหนากว่า, ยกเลิกหรือหมุน API key ของเอเจนต์ด้วย apiKeys.revoke หรือ apiKeys.rotate - ซึ่งจะตัดการเข้าถึงอย่างสิ้นเชิง, ไม่ใช่แค่การใช้จ่าย. การยกเลิกสิทธิ์เป็นการเคลื่อนไหวที่แม่นยำ; การยกเลิกกุญแจเป็นสวิตช์ตัด.

ขั้นตอนที่ 4 จาก 4

จัดการการชำระเงินที่ถึงขีดจำกัด.

เมื่อการชำระเงินเกินสิทธิ์ที่ใช้งานอยู่ ระบบแบ็กเอนด์จะปฏิเสธก่อนที่สิ่งใดจะสัมผัสกับเครือข่าย - ไม่มีเงินเคลื่อนย้าย การเรียก payments.create ของคุณส่งคืนข้อผิดพลาด; จัดการเหมือนกับการโทรที่ล้มเหลวอื่น ๆ แสดงให้ผู้ดำเนินการของคุณเห็น และอย่าพยายามทำซ้ำโดยไม่มองเข้าไปในกำแพงเดียวกัน

เพื่อดูสิ่งที่ตัวแทนพยายามทำ ให้ดูบันทึกกิจกรรมของแดชบอร์ดและปรับยอดการเคลื่อนไหวจริงกับ transactions.get การพยายามที่ถูกปฏิเสธอย่างรวดเร็วเป็นสัญญาณเตือนล่วงหน้าของคุณ: ไม่ว่าจะเป็นการอนุญาตที่กำหนดค่าไม่ถูกต้อง วงจรที่หลุดลอย หรือการตรวจสอบการฉีด แจ้งเตือนเกี่ยวกับมันในลักษณะเดียวกับที่คุณจะทำในกรณีที่มีการเรียกที่ล้มเหลว.

ข้อผิดพลาดทั่วไป

ห้าข้อผิดพลาดที่ทำให้การควบคุมล้มเหลว.

การใส่ขีดจำกัดการใช้จ่ายในรหัสตัวแทนแทนที่จะเป็นระบบหลังบ้าน

กฎการใช้จ่ายในแผนของตัวแทนหรือคำสั่งของระบบไม่ใช่ขอบเขตด้านความปลอดภัย การโจมตีด้วยการฉีดคำสั่งที่เขียนทับแผนก็เขียนทับขีดจำกัดด้วย จุดประสงค์ทั้งหมดของการอนุญาตการใช้จ่ายคือมันอยู่ภายนอกขอบเขตที่ตัวแทนสามารถจัดการได้ - ที่แบ็กเอนด์ ตั้งค่าในแดชบอร์ด - ดังนั้นตัวแทนจึงไม่สามารถเปลี่ยนแปลงได้ ตั้งค่าไว้ที่นั่น ไม่ใช่ด้วย 'บอกตัวแทนว่าอย่าใช้จ่ายเกิน $X'

คาดหวังว่า API key ของเอเจนต์จะขยายขอบเขต

API เป็นแบบอ่านอย่างเดียวสำหรับการอนุญาตการใช้จ่าย: ไม่มีจุดสิ้นสุดและไม่มีวิธี SDK ที่เพิ่มการอนุญาต นั่นเป็นการตั้งใจ หากตัวแทนที่ถูกแฮ็กหรือถูกฉีดสามารถเรียกใช้จุดสิ้นสุดที่เปลี่ยนแปลงด้วยกุญแจที่มันถืออยู่แล้ว การควบคุมจะไม่มีค่าใด ๆ เพื่อเปลี่ยนขีดจำกัดคุณใช้แดชบอร์ด ซึ่งการเปลี่ยนแปลงเป็นการกระทำของมนุษย์ที่มีเส้นทางการตรวจสอบ

ตั้งค่าการอนุญาตให้สูงมากจนไม่เคยกัด

การอนุญาตจะปกป้องคุณได้ก็ต่อเมื่อมันสามารถรับน้ำหนักได้ การอนุญาตที่ตั้งไว้ที่ 100x การใช้งานปกติจะไม่หยุดวงจรที่หลุดลอยจนกว่ามันจะใช้จ่ายไปมากกว่าที่คุณต้องการ ขนาดการอนุญาตและขีดจำกัดต่อธุรกรรมที่ประมาณ 2-3x การใช้งานที่คาดหวัง จากนั้นขยายออกอย่างตั้งใจหากการจราจรจริงพิสูจน์ว่าคุณต้องการ.

ลืมขีดจำกัดต่อธุรกรรม

allowance_wei จำกัดกรณีที่เลวร้ายที่สุดตลอดทั้งช่วงเวลา; per_tx_wei จำกัดการชำระเงินใดๆ เพียงรายการเดียว พวกเขาทำงานที่แตกต่างกัน การอนุญาตในช่วงเวลาที่กว้างขวางโดยไม่มีขีดจำกัดต่อการทำธุรกรรมยังคงอนุญาตให้คำขอที่ผิดปกติหนึ่งรายการ - การลองใหม่ที่มีข้อบกพร่อง, ราคาที่ถูกอ้างอิงอย่างไม่เหมาะสม - ย้ายจำนวนมากในครั้งเดียว ตั้งทั้งสอง

ไม่มีการซ้อมสวิตช์ฆ่าอย่างรวดเร็ว

เมื่อสิ่งใดดูผิดปกติในเวลา 2 โมงเช้า คุณต้องการการเคลื่อนไหวที่คุณได้ฝึกฝนไว้แล้ว สองอย่างมีอยู่: เพิกถอนสิทธิ์ในแดชบอร์ด (ตั้ง revoked_at, การอนุญาตเป็นศูนย์) หรือเพิกถอน/หมุนคีย์ API ของตัวแทนด้วย apiKeys.revoke / apiKeys.rotate (ตัดข้อมูลประจำตัวทั้งหมด) รู้ว่าคุณจะหยิบอันไหนและคุณสามารถทำได้อย่างรวดเร็ว

ขั้นตอนถัดไป

หลังจากที่ได้รับอนุญาตแล้ว

เมื่อมีการบังคับใช้สิทธิ์ การติดตามที่ให้ผลตอบแทนมากที่สุดคือการจัดการ webhook ที่เชื่อถือได้ (เพื่อให้เหตุการณ์การชำระเงินถึงตัวจัดการของคุณจริง ๆ) การตรวจสอบตัวตน (เพื่อให้คู่ค้าเชื่อมั่นในโปรไฟล์ของตัวแทน) และการตรวจสอบความปลอดภัยก่อนเปิดตัว (เพื่อให้คุณไม่ได้เปิดประตูอื่นทิ้งไว้)

เอกสารอ้างอิงเต็มรูปแบบที่ docs.blockchain0x.com. พื้นผิวผลิตภัณฑ์: การควบคุมการใช้จ่าย.

ตรวจสอบล่าสุด: 2026-05-15. เผยแพร่ภายใต้ CC BY 4.0.

มอบแนวทางให้กับตัวแทนของคุณที่ไม่สามารถยกขึ้นได้

การอนุญาตต่อช่วงเวลาและขีดจำกัดต่อการทำธุรกรรม ตั้งค่าในแดชบอร์ดและบังคับใช้โดยแบ็คเอนด์ ฟรีในการเริ่มต้น