# Gatekeeper and Sturdy-references - [`[syndicate-protocols]/schemas/gatekeeper.prs`](https://git.syndicate-lang.org/syndicate-lang/syndicate-protocols/src/branch/main/schemas/gatekeeper.prs) - [`[syndicate-protocols]/schemas/sturdy.prs`](https://git.syndicate-lang.org/syndicate-lang/syndicate-protocols/src/branch/main/schemas/sturdy.prs) ## Gatekeeper protocol The Gatekeeper protocol allows a peer to "upgrade" a `SturdyRef` to a live reference to an entity. For details of the use of `Resolve` and `Bind` assertions, see the [guide to the built-in gatekeeper entity](../../operation/builtin/gatekeeper.md). **Implementation.** The protocol is implemented within the [`syndicate-server`](../../operation/system-bus.md) program. ``` Resolve = . Bind = . ``` ## Sturdy-reference structures A "sturdyref" is a long-lived certificate including a cryptographic signature that can be upgraded by a gatekeeper entity to a live reference to the entity named in the sturdyref. For an overview of `SturdyRef`s, see the [guide to the built-in gatekeeper entity](../../operation/builtin/gatekeeper.md#sturdyrefs). ``` SturdyRef = . ``` For detail of the interpretation of `Attenuation`s, `Caveat`s, `Pattern`s, and `Template`s, see the [Syndicate protocol specification](../../protocol.md#capabilities-on-the-wire). ``` Attenuation = [Caveat ...]. Caveat = Rewrite / Alts . Rewrite = . Alts = . Lit = . Pattern = PDiscard / PAtom / PEmbedded / PBind / PAnd / PNot / Lit / PCompound . PDiscard = <_>. PAtom = =Boolean / =Float / =Double / =SignedInteger / =String / =ByteString / =Symbol . PEmbedded = =Embedded . PBind = . PAnd = . PNot = . PCompound = / @rec / @arr / @dict . Template = TAttenuate / TRef / Lit / TCompound . TAttenuate = . TRef = . TCompound = / @rec / @arr / @dict . ```