A minter and protocol for inscriptions on Bellscoin.
Fork from https://github.com/apezord/doginals
Install dependencies:
npm install
Create a .env
file with your node information:
NODE_RPC_URL=http://127.0.0.1:19918
NODE_RPC_USER=<username>
NODE_RPC_PASS=<password>
TESTNET=false
Generate a new .wallet.json
file:
node . wallet new
Import the new wallet private key via bells-cli
bells-cli importprivkey <privatekey>
Then send BEL to the address displayed. Once sent, sync your wallet:
node . wallet sync
If you are minting a lot, you can split up your UTXOs:
node . wallet split <count>
When you are done minting, send the funds back:
node . wallet send <address> <optional amount>
From file:
node . mint <address> <path>
From data:
node . mint <address> <content type> <hex data>
Examples:
node . mint BSV12KPb8m5b6YtfmqY89K6YqvdVwMYDPn bell.jpeg
node . mint BSV12KPb8m5b6YtfmqY89K6YqvdVwMYDPn "text/plain;charset=utf8" 576f6f6621
Note: Please use a fresh wallet to mint to with nothing else in it until proper wallet for bellinals support comes.
Start the server:
node . server
And open your browser to:
http://localhost:3000/tx/15f3b73df7e5c072becb1d84191843ba080734805addfccb650929719080f62e
The bellinals protocol allows any size data to be inscribed onto subwoofers.
An inscription is defined as a series of push datas:
"ord"
OP_1
"text/plain; charset=utf8"
OP_0
"Woof!"
For bellinals, we introduce a couple extensions. First, content may spread across multiple parts:
"ord"
OP_2
"text/plain; charset=utf8"
OP_1
"Woof and "
OP_0
"woof woof!"
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:
"ord"
OP_2
"text/plain; charset=utf8"
OP_1
"Woof and "
Transaction 2
OP_0
"woof woof!"
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.
There's a problem with the node connection. Your dogecoin.conf
file should look something like:
rpcuser=ape
rpcpassword=zord
rpcport=22555
server=1
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:
NODE_RPC_URL=http://127.0.0.1:22555
NODE_RPC_USER=ape
NODE_RPC_PASS=zord
TESTNET=false
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.