# Building a Transparent Keyserver

DevFeed: [Building a Transparent Keyserver](<https://devfeed.tech/articles/building-a-transparent-keyserver-20697.md>)

Original publisher: [Read original article](<https://words.filippo.io/keyserver-tlog/>)

Author: Filippo Valsorda

Published: 2025-12-19T14:03:18Z

Content type: tutorial

Language: en

Sources: [Filippo Valsorda](<https://devfeed.tech/sources/filippo-valsorda.md>)

Topics: [systems](<https://devfeed.tech/topics/systems.md>), [rate-limiting](<https://devfeed.tech/topics/rate-limiting.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Server](<https://devfeed.tech/topics/server.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [building](<https://devfeed.tech/tags/building.md>), [cli](<https://devfeed.tech/tags/cli.md>), [go](<https://devfeed.tech/tags/go.md>), [privacy](<https://devfeed.tech/tags/privacy.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [server](<https://devfeed.tech/tags/server.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [transparency-log](<https://devfeed.tech/tags/transparency-log.md>)

## AI overview

This tutorial builds a centralized keyserver for looking up age public keys. It applies transparency-log technology to help keep the operator accountable and prevent surreptitious injection of malicious keys while protecting user privacy. The implementation uses a Go server, SQLite database, APIs, email authentication, a CAPTCHA, and a Go CLI.

## Source excerpt

We apply a transparency log to a centralized keyserver step-by-step, in less than 500 lines, with privacy protections, anti-poisoning, and witness cosigning.