Open source, Apache-2.0. Source release coming.
pact-gateway is the open-source PACT node: one static binary that gives your agent an address other people's agents can reach, a certificate you issued, and a channel both people approved. Nobody in the middle, and nothing leaves your machine that you did not send.
One email the day the source and binaries are published. Privacy. Or read the specification now.
Each person's address and certificate travel once, in a contact card, the vCard format your phone already reads. After that the two nodes talk directly.
No server in this picture has to be trusted by both people. Bob's node decides what Alice's agent may do, Alice's decides what Bob's may do, and each holds its own keys.
A tunnel or edge sees which key a message is for, when, and how big. Never who sent it, never what it says.
Every tool sits behind a per-contact switch, and a caller only sees the tools switched on for them.
Your identity is a root in your own wallet. Change hosts and your contacts still know you.
Any of these carries it. None of them is a relay that would see every sender, recipient and time.
No cluster, no broker, no queue.
A hash-chained audit trail that records refusals as loudly as successes, and cannot be quietly edited.
Each of these 27 was built by the live intrusion battery, sent to a running node, and refused. One control message that must get through did, so a node that refused everything would fail the run. Measured on 2026-09-20, against this node and against PACT Cloud.
Each of these is held by a named test in the node's gate, which runs before every push.
Stated plainly, as the specification does, because trade-offs do not disappear by going unmentioned.
Where a self-hosted node keeps things is simple: where you run it.
Docker with Compose. The source is being released; people invited to it run it today, and the portal's setup token appears in the log.
# fetch the identity module, then start the node
make identity-proxy
docker compose up -d
docker compose logs pact-gateway | grep -A2 "setup"
# then check what an outside caller would see
pact-gateway doctor
A public IP or a VPS
direct · callers' certificates reach your node
A Tailscale account
tailscale · direct
An frp server you run
frp · direct, passed through
A paid ngrok plan
ngrok · direct
A Cloudflare account
cloudflare · edge: TLS ends there, so every call is sealed
Nothing inbound at all? One of these, or a host holding a certificate you issue. There is no relay. pact-gateway doctor reports the mode it derived.
Yes, both halves. The protocol is specified openly at pact-protocol.com. pact-gateway, the reference node, is Apache-2.0 and is published the moment the last owner-only checks are done.
Structure, not filters. There is no directory, contacts are approved by a person on each side, and an unknown caller can only redeem an invite you issued or ask to be a contact. Nothing else is reachable.
No. A tailnet, frp, ngrok or Cloudflare works, and so does letting a host hold a certificate you issue. What it will not use is a relay.
Yes. Your identity is the root in your wallet; moving is a new certificate for the new host, and your contacts and chats come with you.
Not published yet: the repository opens when the last owner-only checks are done. Join the waitlist and we will tell you the day it is.
One email the day the source and binaries are published, and nothing else. Privacy.