[KongchangAI]
Company

AgentBadge

A company focused on AI agent payment security, providing payment client libraries such as @agentbadge/circle-payments and emphasizing mandatory spending limits to protect agent wallets.

Timeline (last 90 days)

Oct 15

In AgentBadge's buyer-side design of @agentbadge/circle-payments, createPayingClient must be provided with PaymentCaps (including maxPaymentUsd and sessionBudgetUsd); omitting them throws a TypeError, and there is no unlimited mode.

Unverified50%
Oct 15

AgentBadge's payment client requires all accepts[] entries to pass five checks: x402Version === 2; scheme belongs to {exact, eip3009-client-broadcast, gateway-batch}; network is in the allowlist; asset equals the chain's USDC address; and amount is less than or equal to the per-call cap.

Unverified50%
Oct 15

If the payment requirement declares extra.decimals that is not 6, the client directly rejects it rather than guessing, to avoid decimal scaling errors.

Unverified50%
Oct 15

The anti-loop guard throws PaymentNotAcceptedError when a retry request carrying a payment-signature returns 402 again, and never pays twice for the same request.

Unverified50%
Oct 15

The networks AgentBadge allows by default are Arc mainnet (eip155:5042) and Arc testnet (eip155:5042002).

Unverified50%
Oct 15

In production testing, the AgentBadge client produced three real-time rejections (amount over cap, network not in allowlist, session budget exhausted), all of which occurred before any signing.

Unverified50%
Oct 15

In one real run, three payment attempts triggered a server 500 after the payment-signature was accepted, the facilitator never broadcast, and the payer's balance changed only on another successful settlement—three signatures, zero on-chain settlement on the failed attempts.

Unverified50%
Oct 15

All amount calculations are based on 6-decimal atomic units using BigInt, never floating-point numbers.

Unverified50%
Oct 15

When the payment requirement declares extra.payerBinding, the retry carries the X-Wallet, X-Sig, and X-Timestamp headers (EIP-191, agentbadge-pay:v1).

Unverified50%
Oct 15

Spending is recorded when the funds are actually submitted—at settlement for the facilitator channel, at broadcast for self-settlement—and the onSpend(entry) hook persists each event to storage.

Unverified50%

All Facts (10)

Unverified

In AgentBadge's buyer-side design of @agentbadge/circle-payments, createPayingClient must be provided with PaymentCaps (including maxPaymentUsd and sessionBudgetUsd); omitting them throws a TypeError, and there is no unlimited mode.

50%
Unverified

AgentBadge's payment client requires all accepts[] entries to pass five checks: x402Version === 2; scheme belongs to {exact, eip3009-client-broadcast, gateway-batch}; network is in the allowlist; asset equals the chain's USDC address; and amount is less than or equal to the per-call cap.

50%
Unverified

If the payment requirement declares extra.decimals that is not 6, the client directly rejects it rather than guessing, to avoid decimal scaling errors.

50%
Unverified

The anti-loop guard throws PaymentNotAcceptedError when a retry request carrying a payment-signature returns 402 again, and never pays twice for the same request.

50%
Unverified

The networks AgentBadge allows by default are Arc mainnet (eip155:5042) and Arc testnet (eip155:5042002).

50%
Unverified

When the payment requirement declares extra.payerBinding, the retry carries the X-Wallet, X-Sig, and X-Timestamp headers (EIP-191, agentbadge-pay:v1).

50%
Unverified

Spending is recorded when the funds are actually submitted—at settlement for the facilitator channel, at broadcast for self-settlement—and the onSpend(entry) hook persists each event to storage.

50%
Unverified

All amount calculations are based on 6-decimal atomic units using BigInt, never floating-point numbers.

50%
Unverified

In production testing, the AgentBadge client produced three real-time rejections (amount over cap, network not in allowlist, session budget exhausted), all of which occurred before any signing.

50%
Unverified

In one real run, three payment attempts triggered a server 500 after the payment-signature was accepted, the facilitator never broadcast, and the payer's balance changed only on another successful settlement—three signatures, zero on-chain settlement on the failed attempts.

50%

Source Articles