@tat-protocol/gate
v1.3.0
Published
Gate Agent for TAT Protocol - Access verification and validation
Maintainers
Readme
@tat-protocol/gate
Gate services for access verification and challenge/proof workflows.
Install
npm install @tat-protocol/gateExports
GateServerSpec(spec-oriented NWPC gate service)GateBase(extensible base class)Gate(minimal wrapper)- Built-in strategies:
singleUse,multiUse,timeWindow,allOf SimpleAccessPolicy/createAccessPolicy- Types from
types.tsandspec-types.ts
Quick Start (Spec Server)
import { GateServerSpec } from "@tat-protocol/gate";
import { NodeStore } from "@tat-protocol/storage";
import { KeySigner } from "@tat-protocol/signers";
const gate = await GateServerSpec.create({
signer: new KeySigner(process.env.GATE_SECRET_KEY!),
storage: new NodeStore(".gate"),
relays: ["wss://relay.damus.io"],
serviceName: "Premium API",
challengeExpiry: 300,
sessionExpiry: 3600,
});
console.log(gate.getPublicKey());Easy Local Validation
For in-process gates, compose defaults instead of writing custom strategy classes:
import {
createAccessPolicy,
singleUse,
allOf,
timeWindow,
} from "@tat-protocol/gate";
const policy = createAccessPolicy({
name: "Main entrance",
allowedIssuers: [process.env.TICKET_FORGE_PUBKEY!],
requireValidSignature: true,
requireNotExpired: true,
});
const strategy = allOf([
singleUse(),
timeWindow({ startsAt: eventStartMs, endsAt: eventEndMs }),
]);Protocol Flow
- Client calls
gate.request_access. - Server returns challenge (
gate.challenge). - Client submits proof to
gate.verify. - Server responds with
gate.resultand optional session token.
Runtime Notes
- Session validation is available via
verifySession(sessionToken). - Gate supports full and minimal proof modes.
- Persist state to avoid replay gaps across restarts.
