Subject: Re: [bitcoin-dev] Proposal for a few IANA mime-types related to Bitcoin

From: Andrew Chow <[email-masked]>
Date: Tue, 31 Aug 2021 19:46:55 +0000

Hi Peter,

It would be nice to have mime types registered for Bitcoin things, but
I'm not sure that it will be possible, at least not in the way that we
would like. I tried doing this with "application/bitcoin-psbt" back in
2019 but it was not accepted. From that attempt, here is what I have
learned:

There are only a few accepted top level types, so we would not be able
to use "bitcoin" as the top level (unless you want to submit an RFC to
add a "bitcoin" top level). Of the available top level types,
"application" is the most appropriate for Bitcoin.

Next is the tree that the mime type should be in. The best would be the
Standards tree, but it has some requirements that Bitcoin doesn't really
meet. In order to be in the standards tree, the registration must be
either associated with an IETF specification (so a RFC) or registered by
a recognized standards related organization. Unfortunately the closest
thing to a standards organization that Bitcoin has is the BIPs process,
and that is not a really a standards organization nor is it recognized
by IANA. So in order to register the mimetypes as Standards tree types,
we would need to write an RFC, but this could be an independent
submission (https://www.rfc-editor.org/about/independent/) rather than
IETF-stream submission. I did not continue to pursue this because I
didn't have the time.

Another alternative would be to use the Vendor tree, but that would
prefix the mimetype with "vnd." so it would end up being something like
"application/vnd.bitcoin.psbt". I did not think this was an reasonable
so I did not continue to pursue this avenue.

Andrew Chow

On 8/31/21 2:27 PM, Peter D. Gray via bitcoin-dev wrote:
> Hi list!
>
> I am proposing to register the following MIME (RFC 2046) media types with the IANA:
>
>
> bitcoin/psbt
>
>      - aka. a BIP-174 file, in binary
>      - does not make any claims about signed/unsigned status; lets leave that to the file
>
> bitcoin/txn
>
>      - aka. wire-ready fully-signed transaction in binary
>
> bitcoin/uri
>
>      - aka [BIP-21](https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki)
>      - could be just a bare bech32 or base58 payment address
>      - but can also encode amount, comments in URL args
>      - potentially interesting as a response to 402 - Payment required
>
>
> Other thoughts
>
> - some mime-types are proposed in BIP-71 but those are unrelated to above, and never
>    seem to have been registered
>
> - for those who like to encode their binary as base64 or hex, that can be indicated
>    as "encoding=hex" or "encoding=base64" in the optional parameters, just like
>    "text/plain; encoding=utf-8" does. However, the default must be binary.
>
> - although the above are useful for web servers, they are also useful elsewhere and I
>    intend to use them in NFC (NDEF records) where a shorter length is critical.
>
> - I have no idea how easily IANA will accept these proposals.
>
> - current approved mime types: https://www.iana.org/assignments/media-types/media-types.xhtml
>
> Thoughts?
>
> ---
> @DocHEX  ||  Coinkite  ||  PGP: A3A31BAD 5A2A5B10
>
> _______________________________________________
> bitcoin-dev mailing list
> [email-masked]
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev