Doginals
A minter and protocol for inscriptions on Dogecoin.
⚠️⚠️⚠️ Important ⚠️⚠️⚠️
Use this wallet for inscribing only! Always inscribe from this wallet to a different address, e.g. one you created with DogeLabs or Doggy Market. This wallet is not meant for storing funds or inscriptions.
Prerequisites
This guide requires a bit of coding knowledge and running Ubuntu on your local machine or a rented one. To use this, you'll need to use your terminal to setup a Dogecoin node, clone this repo and install Node.js on your computer.
Setup Dogceoin node
Follow the instructions here to setup and sync your Dogecoin node: (https://dogecoin.com/dogepedia/how-tos/operating-a-node/#linux-instructions)
⚠️⚠️⚠️ Important ⚠️⚠️⚠️
A configuration file needs to be created before you continue with the sync. Stop your node:
Create a dogecoin.conf
file at /root/.dogecoin
folder. Set your own username/password.
Copy and paste this to the created file. Save it!
Start your node again
How to check if your node is in sync with the network. On your dogecoin
install folder, type the command dogecoin-cli getinfo
Compare the "blocks" value to the current block height via a Dogecoin explorer like: https://sochain.com/DOGE Do not mint anything yet unless your node is fully synced. You can proceed with installing the other requirements below.
==========
Install NodeJS
Please head over to (https://github.com/nodesource/distributions#using-ubuntu) and follow the installation instructions.
Check if they are installed by running the following commands:
v21.6.2
10.2.4
These recent verions works with this minter.
Cannot install Nodejs?
If you are having trouble installing the latest version, remove nodejs and npm by using these commands.
The node-v
and npm-v
commands should show an error that they are not installed. Procced with the install instructions above.
==========
Setup Shibescriptions
Clone Doginal minter
On your Terminal, type the following commands:
Setup minter
After all dependencies are solved, you can configure the environment:
Configure environment
Create a .env
file with your node information. Set your own username/password.
You can get the current fee per kb from here.
==========
⚠️⚠️⚠️ Important ⚠️⚠️⚠️
Before proceeding, please make sure your node is fully synced. Have fun!
Creating a New Core Wallet
We will now create a new wallet on your Dogecoin node. Navigate to the install folder where you have extracted the files.
Genereate new address with this command:
Example: ./dogecoin-cli getnewaddress z4ch
Next, get the Private Key of this new address
Example: ./dogecoin-cli dumpprivkey DCJPoswVPpctoaBSBcapVfkPPMwhFT7PPV
Take note of the Private Key of the address. We will use this on the next step.
Create Doginal Wallet
Navigate to the Doginals folder:
Generate the .wallet.json file:
Modify .wallet.json file:
Replace the DOGE Address and Private Key on this file and then save it.
You can now send some DOGE to this new address.
Sync Balance with Core
Run the following command on your Doginals folder:
If your balance is shown, then you can proceed with minting some Doginals.
==========
Minting Doginals
Note: Please use a fresh wallet to mint to with nothing else in it until proper wallet for doginals support comes. You can get a paper wallet here.
Inscribe a file
From file:
From data:
Examples:
Lazy image minter
This script will allow you to mint and forger large files. Make sure your Doge wallet has enough funds before proceeding.
Make image-mint.sh
executable
Run the script with additional parameters
Example: ./image-mint.sh <doom.jpg>
Incribing DRC-20
Examples:
DRC-20 bulk minter
This script will allow you to bul mint a DRC-20. Make sure your Doge wallet has enough funds before proceeding.
Make bulk-mint.sh
executable
Run the script with additional parameters
Example: ./bulk-mint.sh <100> Check the max token count you can mint for the specific token.
Viewing Doginals
Start the server:
And open your browser to:
==========
Additional Info
Protocol
The doginals protocol allows any size data to be inscribed onto subwoofers.
An inscription is defined as a series of push datas:
For doginals, we introduce a couple extensions. First, content may spread across multiple parts:
This content here would be concatenated as "Woof and woof woof!". This allows up to ~1500 bytes of data per transaction.
Second, P2SH is used to encode inscriptions.
There are no restrictions on what P2SH scripts may do as long as the redeem scripts start with inscription push datas.
And third, inscriptions are allowed to chain across transactions:
Transaction 1:
Transaction 2
With the restriction that each inscription part after the first must start with a number separator, and number separators must count down to 0.
This allows indexers to know how much data remains.
Troubleshooting
I'm getting ECONNREFUSED errors when minting
There's a problem with the node connection. Your dogecoin.conf
file should look something like:
Make sure port
is not set to the same number as rpcport
. Also make sure rpcauth
is not set.
Your .env file
should look like:
I'm getting "insufficient priority" errors when minting
The miner fee is too low. You can increase it up by putting FEE_PER_KB=300000000 in your .env file or just wait it out. The default is 100000000 but spikes up when demand is high.
Other issues
Try restarting your Dogecoin node. Stop your node by going to the bin
folder and type the following command: ./dogecoin-cli stop
Always make sure that the requirements are met.
If still stuck, ask ChatGPT or search online for other solutions.
==========
Screenshots
Checking
node
andnpm
versionsCloning repository
git clone https://github.com/zachzwei/doginals.git
Running
npm install
Generating a new wallet
node . wallet new
Checking wallet balance after sending some ÐOGE.
node . wallet sync
Creating
.env
file and viewing it.
Test mint of an image
Last updated