What is BitPic?
BitPic is a protocol for hosting and using Paymail avatars on the Bitcoin blockchain.
You can think of it as Gravatar, but for Bitcoin.
- Instead of using a normal email address, BitPic uses Paymail address.
- Instead of storing the images on a proprietary server, it stores them on the Bitcoin blockchain.
- BitPic is open and distributed. Anyone can run a BitPic node.
- The images are 100% stored on the Bitcoin blockchain, signed by Paymail user identity public key. Images signed with invalid signature are not indexed.
Free @bitpic.net Paymail
BitPic.net provides free paymail addresses that include built-in avatar support. When you register a yourname@bitpic.net paymail, you get:
- BSV Payment Address: Receive Bitcoin payments to your memorable paymail address, forwarded to your Yours Wallet.
- Ordinals Receive: Accept 1Sat Ordinals NFTs directly to your paymail address.
- Avatar Capability: Your BitPic avatar is automatically served via the standard paymail public-profile capability (BRFC f12f968c92d6).
- Identity Verification: Your paymail is linked to your wallet's identity key, ensuring only you can update your avatar.
Register your free @bitpic.net paymail to get started.
Step 1. Upload avatar to Bitcoin
Create a Bitcoin transaction which uploads a signed image using the BitPic protocol.
OP_0 OP_RETURN 19HxigV4QyBv3tHpQVcUEQyq1pzZVdoAut [FILE Binary] image/jpeg binary | 18pAqbYqhzErT6Zk3a5dwxHtB9icv8jH2p [Paymail] [Pubkey] [Sig]
Step 2. Use
Once uploaded, you can use the image from anywhere, simply by referencing:
https://bitpic.net/u/[Paymail]Here's an example:
https://bitpic.net/u/644@moneybutton.comStep 3. Update
BitPic implements a mutable database. Whenever you upload a new avatar, your BitPic address will be updated to serve the newly uploaded avatar image.
Why use BitPic?
- Your avatar forever: Paymail providers and wallet providers may disappear, but your BitPic avatar will never go away because it's on the blockchain. If you post something tied to your Paymail, you probably want the avatar to show up forever.
- App developers: No need to roll your own avatar system: As an application developer, you don't need to build a user avatar system from scratch. Just start using the avatar by referencing
https://bitpic.net/u/[Paymail]! If an avatar doesn't exist for that paymail address, you will instead see a default image. - 100% Open: BitPic is open source, which means anybody can run their own BitPic node to operate the avatar system.
- Interoperable and Permissionless: You don't need to ask other wallets or applications for permission to use their avatars tied to their paymails, because the avatars are served from the single source of truth: the Bitcoin blockchain.
How to use BitPic
1. For users
Once you upload your avatar to the blockchain, you can use it from anywhere. For example you can embed your BitPic in your website simply with an HTML tag:
<img src="https://bitpic.net/u/<YOUR_PAYMAIL>">2. For app developers
No need to roll your own avatar system: Bitpic is an avatar owned by the user through Paymail. Outsource your Avatar system to the Bitcoin blockchain.
Uploading Avatars: Allowing your users to upload avatars is easy. Send them to the BitPic upload interface.
API Endpoints
GET /u/<paymail>Returns the avatar image for the given paymail address. Can be embedded directly in apps.
Example: /u/644@moneybutton.comGET /api/exists/<paymail>Returns JSON indicating if the paymail has an associated BitPic avatar.
Example: /api/exists/644@moneybutton.comGET /api/avatar/<paymail>Returns JSON metadata about the avatar including txid and timestamp.
Example: /api/avatar/644@moneybutton.comDefault Image
By default BitPic returns a fixed default image if an image doesn't yet exist for the corresponding paymail address.
You can specify your own default image by adding a d=<default image url> parameter:
https://bitpic.net/u/unknown@example.com?d=https://example.com/fallback.pngProtocol
BitPic uses the B protocol for file storage and identifies avatars with the BitPic protocol prefix:
19HxigV4QyBv3tHpQVcUEQyq1pzZVdoAut18pAqbYqhzErT6Zk3a5dwxHtB9icv8jH2pOutpoint References
Instead of uploading a new image, you can link your avatar to any existing on-chain image - whether it's a 1Sat Ordinal inscription or a B protocol file. This is useful if you already have an image on-chain you want to use as your avatar, or want to share the same image across multiple paymails without re-uploading.
Outpoint references use the special mime type application/x-bitpic-ref and contain a pointer to the outpoint containing the image:
OP_0 OP_RETURN 19HxigV4QyBv3tHpQVcUEQyq1pzZVdoAut [txid_vout] application/x-bitpic-ref utf-8 | 18pAqbYqhzErT6Zk3a5dwxHtB9icv8jH2p [Paymail] [Pubkey] [Sig of txid_vout]
When serving the avatar, BitPic resolves the reference via ORDFS to fetch the actual image data from the referenced outpoint.
View BitPic transactions on WhatsOnChain.