agentGate({
// Required
apiKey: string,
// Policy (optional)
minGrade: "A" | "B" | "C" | "D" | "F", // default: "C"
minTransactions: number, // default: 1
// Wallet extraction (optional)
addressFrom: "header" | "query" | "body", // default: "header"
addressField: string, // default: "X-Wallet-Address"
// Behavior (optional)
failOpen: boolean, // default: false — deny on API errors
cache: boolean, // default: true — cache results per TTL
onDeny: (req, res, reputation) => void, // custom deny handler
})