# Blockchain Gateway

**URL:** <https://improve.xmtp.org/t/blockchain-gateway/542>\
**Category:** XIP Stage 0: Ideas\
**Tags:** privacy, decentralization, proposal\
**Created:** [February 13, 2024, 2:49pm UTC](https://improve.xmtp.org/t/blockchain-gateway/542 "2024-02-13T14:49:07Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![trevor](https://improve.xmtp.org/user_avatar/improve.xmtp.org/trevor/32/547_2.png) [@trevor](https://improve.xmtp.org/u/trevor)\
**Post date:** [February 13, 2024, 2:49pm UTC](https://improve.xmtp.org/t/blockchain-gateway/542/1 "2024-02-13T14:49:08Z")

</div>

## Preliminary

The [XMTP chain](https://community.xmtp.org/t/decentralizing-xmtp-a-minimum-viable-proposal/510/1) is a layer two EVM blockchain that uses an onchain DID workflow for [XMTP messaging identity](https://community.xmtp.org/t/create-and-enable-decentralized-contacts/511) and blockchain transactions for message metadata transport (i.e., message-metadata transactions). This model is intended to provide a censorship and spam resistant platform for secure messaging.

## Proposal

An open source privacy gateway for developers that exposes an interface to the XMTP chain mainnet.

## Motivation

Like other EVM networks, the XMTP chain message-metadata transactions are open and transparent and require a valid signature and sufficient gas for network inclusion. Blockchain transparency violates XMTP’s privacy requirements by allowing third parties to associate transaction senders with messaging activity, and per message signatures and fees are an unworkable user experience for a messaging application. A solution is needed that provides users with sender anonymity and a seamless way to construct, sign, fund, and send blockchain message-metadata transactions.

## Open source XMTP chain privacy gateway

XMTP Labs will develop an open source privacy gateway for mainnet v1. The gateway’s main purpose is to break the linkage between message sender and blockchain transaction (i.e., sender anonymity). Developers interface with the gateway by passing it encrypted message metadata that carries instructions for metadata delivery and message content retrieval. The gateway constructs a blockchain transaction that includes the encrypted message metadata, and signs, funds, and sends the transaction to the blockchain from its own account.

 ![image](https://improve.xmtp.org/uploads/default/original/1X/ab6c698cdd0842999665cdad240f8dcf8861cfc6.png)

The requirements of the privacy gateway are:

- Permissioned access
- Blockchain transaction construction
- Ability to sign, fund, and send blockchain transactions from its own account
- Ability to read blockchain messages
- Open source

---

<div class="post-metadata">

**Author:** ![Tsachi\_Herman](https://improve.xmtp.org/user_avatar/improve.xmtp.org/tsachi_herman/32/550_2.png) [@Tsachi\_Herman](https://improve.xmtp.org/u/Tsachi_Herman)\
**Post date:** [February 14, 2024, 3:54pm UTC](https://improve.xmtp.org/t/blockchain-gateway/542/2 "2024-02-14T15:54:54Z")

</div>

In the motivation, we have 2 goals:

1. Have the gateway pay for the message sending fees.
2. Have the gateway hide the message sender identity.

The 2nd goal is not the goal of the bulk-sender, which would have high-throughput.  
Both goals should be aligned with the free-tier deployed gateway.

Note that we’re saying here “message sending fees”, but it really applies to the entire XMTP chain usage, including DID registration, invites and messaging.

---

<div class="post-metadata">

**Author:** ![37ng](https://improve.xmtp.org/user_avatar/improve.xmtp.org/37ng/32/583_2.png) [@37ng](https://improve.xmtp.org/u/37ng)\
**Post date:** [February 16, 2024, 5:57pm UTC](https://improve.xmtp.org/t/blockchain-gateway/542/3 "2024-02-16T17:57:21Z")

</div>

I believe we should consider renaming the gateway to better reflect its functionality, as “blockchain gateway” or another blockchain-related name might be more appropriate. The end-to-end encryption (E2EE) we’ve implemented confines privacy operations to the client side, specifically within [libxmtp](https://github.com/xmtp/libxmtp). The gateway’s current setup neither enhances nor compromises privacy, which is by design.

It’s important to note that the gateway’s ability to obscure the sender’s address by wrapping on-chain transactions doesn’t truly enhance privacy. Users can simply use a burner Ethereum account for transactions, which is unrelated to their main Ethereum account used in the inbox app. And the actual message is not signed by Ethereum keys.

Furthermore, labeling it a “privacy gateway” could mislead developers into thinking they need to rely on this gateway for privacy features, which isn’t the case.

---

<div class="post-metadata">

**Author:** ![trevor](https://improve.xmtp.org/user_avatar/improve.xmtp.org/trevor/32/547_2.png) [@trevor](https://improve.xmtp.org/u/trevor)\
**Post date:** [February 16, 2024, 7:59pm UTC](https://improve.xmtp.org/t/blockchain-gateway/542/4 "2024-02-16T19:59:56Z")

</div>

> [@Tsachi\_Herman](#):
>
> The 2nd goal is not the goal of the bulk-sender, which would have high-throughput.

Good callout. I can be more specific here.

> [@Tsachi\_Herman](#):
>
> Both goals should be aligned with the free-tier deployed gateway.

This proposal is not in reference to a gateway service. This is strictly in reference to the gateway tooling.

> [@Tsachi\_Herman](#):
>
> Note that we’re saying here “message sending fees”, but it really applies to the entire XMTP chain usage, including DID registration, invites and messaging.

Also a good callout. I’ll be more specific.

---

<div class="post-metadata">

**Author:** ![trevor](https://improve.xmtp.org/user_avatar/improve.xmtp.org/trevor/32/547_2.png) [@trevor](https://improve.xmtp.org/u/trevor)\
**Post date:** [February 16, 2024, 8:21pm UTC](https://improve.xmtp.org/t/blockchain-gateway/542/5 "2024-02-16T20:21:13Z")

</div>

> [@37ng](#):
>
> “privacy gateway” could mislead developers into thinking they need to rely on this gateway for privacy features, which isn’t the case.

Blockchain Gateway seems reasonable. But, if the user wants sender anonymity for the EOA they associated their messaging keys to, they will need to use a gateway.

---

<div class="post-metadata">

**Author:** ![37ng](https://improve.xmtp.org/user_avatar/improve.xmtp.org/37ng/32/583_2.png) [@37ng](https://improve.xmtp.org/u/37ng)\
**Post date:** [February 16, 2024, 8:43pm UTC](https://improve.xmtp.org/t/blockchain-gateway/542/6 "2024-02-16T20:43:24Z")

</div>

> EOA they associated their messaging keys to

That EOA doesn’t have to be the same EOA they use to send tx on chain, they can create a burner wallet for the sender anonymity and that doesn’t require using the gateway.

---

<div class="post-metadata">

**Author:** ![xmtp.domains](https://improve.xmtp.org/user_avatar/improve.xmtp.org/xmtp.domains/32/978_2.png) [@xmtp.domains](https://improve.xmtp.org/u/xmtp.domains)\
**Post date:** [February 7, 2025, 5:51pm UTC](https://improve.xmtp.org/t/blockchain-gateway/542/8 "2025-02-07T17:51:36Z")

</div>

I believe it is possible and yes, ethical if costs of message sending fees are covered by advertising, or “sponsored” where a third party picks up the cost in exchange for allowing them to display their message or link.

---

<div class="post-metadata">

**Author:** ![jha](https://improve.xmtp.org/user_avatar/improve.xmtp.org/jha/32/1412_2.png) [@jha](https://improve.xmtp.org/u/jha)\
**Post date:** [February 8, 2025, 1:59am UTC](https://improve.xmtp.org/t/blockchain-gateway/542/9 "2025-02-08T01:59:02Z")

</div>

Hello @xmtp.domains - so great to see you here! 👋

I wanted to share that this proposal is out of date and that perhaps you’d be interested in this XIP, which is the current design: [https://community.xmtp.org/t/xip-49-decentralized-backend-for-mls-messages/856](https://community.xmtp.org/t/xip-49-decentralized-backend-for-mls-messages/856)

Also sharing an invite to the XMTP Dev Call on Tue Feb 11 at 9 am P, if you’re interested! [XMTP Dev Call: XIP-49: Decentralized backend for MLS messages](https://events.xyz/events/13b777a1)

---

<div class="post-metadata">

**Author:** ![xmtp.domains](https://improve.xmtp.org/user_avatar/improve.xmtp.org/xmtp.domains/32/978_2.png) [@xmtp.domains](https://improve.xmtp.org/u/xmtp.domains)\
**Post date:** [February 8, 2025, 3:09pm UTC](https://improve.xmtp.org/t/blockchain-gateway/542/10 "2025-02-08T15:09:08Z")

</div>

> [@jha](#):
>
> XIP-49: Decentralized backend for MLS messages

Thanks! I can’t seem to RSVP though, the page doesn’t load properly.

---

<div class="post-metadata">

**Author:** ![jha](https://improve.xmtp.org/user_avatar/improve.xmtp.org/jha/32/1412_2.png) [@jha](https://improve.xmtp.org/u/jha)\
**Post date:** [February 8, 2025, 5:21pm UTC](https://improve.xmtp.org/t/blockchain-gateway/542/11 "2025-02-08T17:21:17Z")

</div>

Ah, I should have just shared this public meeting invite with you – no RSVP required =) – [Tue Feb 11 Community Call: XIP-49: Decentralized backend for MLS messages - Developer Call - XMTP Technical Forum](https://community.xmtp.org/t/tue-feb-11-xip-49-decentralized-backend-for-mls-messages/861)

If you’d like to add the XMTP Dev Call calendar to your Google Calendar, while on desktop, click this link: [https://calendar.google.com/calendar/u/0?cid=aGlAeG10cC5vcmc](https://calendar.google.com/calendar/u/0?cid=aGlAeG10cC5vcmc)

Thank you again for taking the time!
