Wallets and tools · How-to
How to Send an Invoice as an NFT with Bulla on Rootstock
Bulla turns an invoice into an onchain claim that is minted as an NFT. This guide covers what you need to issue one on Rootstock (RSK), how the payer settles it, and the risks to understand first.
By the DappsAtlas editorial team · Updated

What does it mean to send an invoice as an NFT with Bulla?
Bulla Network is a protocol for recording who owes whom on a blockchain. When you create an invoice in its app, the invoice is stored as a claim, and the claim is represented as an NFT. In Bulla's model the NFT sits with the creditor, the person or business that is owed money. The debtor is the address expected to pay.
That structure has a few practical effects:
- A shared record. Both sides can point to the same onchain entry for the amount, token, due date and status.
- Payment tracking. When the debtor pays through the claim, the status updates onchain, so you do not have to match bank references by hand.
- A portable asset. Because the claim is an NFT, it can in principle be moved to another address, for example to a treasury wallet or a party buying the receivable.
What it is not: an escrow, a guarantee, or a payment that happens by itself. The NFT records an obligation. It does not force payment, and it does not replace a contract or the invoice formalities your jurisdiction expects.
Rootstock, often shortened to RSK, is an EVM-compatible network secured by Bitcoin merge-mining, where RBTC (pegged one-to-one to BTC) pays for gas. For freelancers, DAOs and businesses that already hold Bitcoin-linked assets, invoicing there avoids moving funds to another chain just to bill a client.
Before you start, confirm in the Bulla app that Rootstock is listed as a supported network, since chain support can change over time.
What do you need before creating the invoice?
A short checklist saves failed transactions later.
For the creditor (you)
- A self-custodial wallet that supports EVM networks, such as MetaMask or a compatible hardware-wallet setup.
- A small balance of RBTC on Rootstock for gas.
- The payer's Rootstock-compatible wallet address, copied exactly and checked twice.
- The token you want to be paid in, and its correct contract on Rootstock.
- The invoice amount, due date and a short description.
For the debtor (the payer)
- A wallet on Rootstock with enough of the invoiced token.
- A little RBTC for fees.
- Awareness that the payment is an onchain transaction and cannot be reversed.
Where to get RBTC. The usual routes are an exchange that supports Rootstock withdrawals, or Rootstock's own bridge for moving BTC to RBTC. Check that any exchange lists Rootstock as a withdrawal network before sending. Sending RBTC to the wrong network can mean lost funds.
Pick the token with care. Many tokens on Rootstock share similar names. Confirm the contract address from the issuer's official documentation, not from a search result or a message from a stranger.
Do a small test first. Send a low-value invoice to a second wallet you control and walk through the whole cycle before billing a client.
How do you set up Rootstock in your wallet?
If your wallet does not already list Rootstock, add it as a custom network. Use details from Rootstock's official documentation and compare them with at least one other trusted source.
- Open your wallet's network settings and choose to add a network manually.
- Enter the network name, the public RPC address from Rootstock's docs, and the chain ID. Rootstock mainnet uses chain ID 30, and the public testnet uses 31.
- Set the currency symbol to RBTC for mainnet. The testnet uses tRBTC.
- Add the block explorer address from the official docs so you can verify transactions later.
- Save, switch to the network and confirm your RBTC balance shows.
Watch for these issues
- Wrong chain ID. If the wallet warns that the chain ID does not match the RPC, stop and recheck.
- Lookalike networks. Fake RPC endpoints can show false balances. Use only documented ones.
- Wrong derivation path. Some hardware and software wallets use a different derivation path for Rootstock. If your address looks different from what you expect, read the wallet's Rootstock guide before moving funds.
If you want to practise first, use the testnet. Test RBTC comes from a faucet, and you can run the whole invoice flow without risking real money, provided the Bulla app offers a testnet option when you try it.
How do you create and send the invoice step by step?
The interface can change, so treat these steps as the general flow and follow the labels you see in the app.
- Open the Bulla app and connect your wallet. Approve only the connection request, not any unexpected signature.
- Switch to Rootstock. Use the network selector in the app or your wallet. If Rootstock is missing, do not proceed on another chain by accident.
- Start a new invoice. Look for an option such as creating an invoice or a claim.
- Enter the payer's address and check every character against the original. Consider confirming the first and last characters with the payer by a second channel.
- Choose the token and amount. Select the token, then enter the amount with the correct decimals.
- Set the due date and, if offered, any extra terms.
- Add a description that is short and non-sensitive, such as an invoice number.
- Review everything. Compare the summary with your off-chain invoice.
- Confirm in your wallet. Check the gas estimate in RBTC and sign the transaction.
- Wait for confirmation, then look at the transaction in the Rootstock block explorer to confirm it went through.
Once confirmed, the claim NFT should appear in your wallet or in the Bulla dashboard. Send the payer a message with the invoice number and a pointer to where they can see and pay it.
What details should an invoice contain?
Because the entry lives onchain, errors are hard to undo, so each field deserves a quick check.
| Field | What to check |
|---|---|
| Payer address | Exact match, on Rootstock, and controlled by the right person. An exchange deposit address is usually a poor choice. |
| Token | Correct contract on Rootstock, and a token the payer can easily obtain. |
| Amount | Right decimals. A misplaced decimal can mean a thousandfold error. |
| Due date | Matches your payment terms and any late-fee clause in your contract. |
| Description | Invoice number and a neutral label only. |
Pricing in a volatile token. If you invoice in RBTC or another volatile asset, the fiat value can change between issue date and payment date. Many businesses invoice in a stablecoin or state the fiat equivalent in their off-chain invoice. Where stablecoins are concerned, understand the issuer and the redemption terms of the specific token you choose.
Keep a matching off-chain document. Standard invoices usually need business details, tax information, numbering and dates. Put those in a PDF or accounting system, and reference the onchain claim in it, and the other way around.
Do not rely on the NFT image or name. NFT metadata is for display. The amount, token and parties recorded in the contract are what count.
What happens when the payer settles the invoice?
After you issue the claim, the payer has to act. A clear message from you reduces delays.
What the payer does
- Opens the Bulla app and connects the wallet that was named as the debtor.
- Switches to Rootstock and finds the invoice.
- Reviews the amount, token and due date.
- Approves the token spend if the app asks for an allowance, then pays.
- Confirms the transaction and keeps the transaction hash as a receipt.
Partial payments and status. Depending on how the claim was set up, the app may allow partial payments and show a remaining balance. Check in the interface what options exist and what the statuses mean, such as pending, paid, overdue or rejected.
If the payer disagrees. Bulla's model may let you or the debtor reject or cancel a claim in some states, and the options depend on the app version. Disputes over quality of work, delivery or price are handled by your contract and the law, not by the NFT.
For the payer's safety. Approve only the exact amount if you can, and review any token allowance afterwards. A wallet's approval-management tool can revoke permissions you no longer need.
After payment, confirm the claim status updated, match the transaction in the explorer with your accounting entry, and send the payer a normal receipt.
Can you transfer or sell the invoice NFT?
Because the invoice is an NFT, it can be moved. That can be useful and also risky.
Possible uses
- Moving the claim to a company treasury or multisig wallet.
- Assigning the right to be paid to a lender or buyer, similar to invoice factoring in traditional finance.
- Using the claim as a record in an accounting or bookkeeping workflow.
What to confirm before you transfer
- What the transfer changes. In Bulla's design the holder of the NFT is the party entitled to the payment, but check how the current contracts and app handle this before assuming it.
- Legal assignment. An onchain transfer may not satisfy the legal rules for assigning a receivable where you live. Notice to the debtor and a written agreement are often needed. Ask a professional.
- Credit risk. A buyer takes on the risk that the debtor does not pay. Pricing and due diligence matter.
- Marketplace risks. NFT marketplaces can display fake or copied items. Verify the contract address and the claim details onchain.
If you never plan to sell the invoice, keep the NFT in the wallet that you use for receiving payments, and do not approve it for any marketplace or unknown site. A malicious approval can let someone else move the NFT.
What about privacy, security and record-keeping?
Public by default. Rootstock is a public blockchain. Anyone can see the payer and creditor addresses, amounts, tokens and timing, and addresses can often be linked to real identities over time. If confidentiality matters, do not put client names or project details in the description. Privacy-focused tools exist on some networks, such as Railgun and Hinkal, but check whether they support Rootstock and whether they fit your compliance obligations before relying on them.
Wallet security.
- Use a hardware wallet for business funds where you can.
- Never share your seed phrase. Bulla and Rootstock support will never ask for it.
- Bookmark the official app address and ignore invoice links sent from unknown accounts, as fake invoice NFTs and phishing sites are a common scam.
- Do not approve token spending or sign messages you do not understand.
Smart contract risk. Any onchain protocol can contain bugs. Look for published audits and the project's documentation, and start with small amounts.
Records and tax. Keep the transaction hashes, dates, token amounts and the fiat value at the time of receipt. Tax treatment of crypto income varies by country. Speak to a qualified accountant about how to report invoices paid in RBTC or tokens.
This guide is general information and not legal, tax or financial advice.
What if something goes wrong?
Rootstock is not offered in the app. Support can change. Check Bulla's documentation or announcements. If Rootstock is no longer listed, do not substitute a different chain without telling the payer.
The wallet shows the wrong network. Switch networks in the wallet first, then reload the app.
Transaction fails or stays pending. Check you have enough RBTC for gas, and look up the transaction in the Rootstock explorer. Avoid sending repeat transactions until you know what happened to the first.
The payer cannot see the invoice. They may be connected with a different address from the one you entered. Ask them to confirm the connected address. If it is wrong, you may need to cancel or reject the claim, where the app allows it, and issue a new one.
The token does not appear. Add the token contract to the wallet manually using the verified address.
The NFT is missing from the wallet. Some wallets do not display NFTs on Rootstock. Check the transaction in the explorer and view the token under the contract in the explorer.
Wrong amount. Do not ask for an overpayment to be fixed by guesswork. See whether the app allows cancelling and reissuing, and agree the fix in writing with the payer.
If something looks suspicious, stop signing and contact the project through its official channels.
Which alternatives should you consider?
An invoice NFT suits one-off or occasional billing. For recurring pay, other tools may fit better.
- Streaming payments. LlamaPay and Superfluid send tokens continuously by the second, which suits salaries and contractor retainers. Check which networks each one supports and whether Rootstock is among them before planning around it.
- Plain transfers with a memo. For small amounts between people who trust each other, a normal wallet transfer with an invoice number in your own records may be enough.
- Traditional invoicing with a crypto payment option. Many accounting tools accept payments to a wallet address and generate the standard invoice documents.
- Other networks. If your payer does not use Rootstock, issuing the invoice on a chain they already use may reduce friction. Moving funds across chains uses bridges, which add cost and risk, so avoid it where you can.
Choosing quickly
| Situation | Likely fit |
|---|---|
| One-time client invoice, both on Rootstock | Bulla invoice NFT |
| Ongoing salary or retainer | A streaming protocol |
| Payer unfamiliar with crypto | Standard invoice plus a wallet address |
| Need confidentiality | Off-chain invoice, or a privacy tool that supports your network |
Whichever you choose, agree the token, network and due date in writing with the payer before any transaction is made.
Frequently asked questions
Does sending a Bulla invoice NFT mean I get paid automatically?
No. Bulla's model mints the invoice as an NFT held by the creditor, but the NFT is a record of money owed. It does not move funds. The debtor still has to pay in the agreed token, and the claim is only as good as their willingness to pay.
What gas token do I need on Rootstock?
You need RBTC on Rootstock to pay transaction fees. Fees can also apply on the payer's side when they settle the invoice. Check your wallet's fee estimate before you confirm each transaction, because costs change with network conditions.
Which token should I invoice in?
It depends on the token and on what the payer holds. Many Rootstock users hold RBTC, RIF or Rootstock-based stablecoins such as DOC. Pick a token the payer can actually get on Rootstock, and confirm the token contract address before you create the invoice.
Can I transfer or sell an invoice NFT?
Usually yes in practice, because the NFT is held by the creditor's address. Selling or transferring it can hand the right to be paid to a new holder. Confirm in the app how the current version treats transfers, and test with a small amount first.
Is a Bulla invoice public?
Yes. Onchain records are visible to anyone who looks up the contracts or addresses involved. Avoid putting names, addresses, tax IDs or confidential terms in the description field, and keep the full invoice document off-chain.
Is an NFT invoice legally valid on its own?
Rules vary by country, and many places require specific fields, numbering and tax details on invoices. An onchain claim can supplement a standard invoice, but check with an accountant or local rules before relying on it as your only record.
Mentioned in this guide
dApps in this guide
LlamaPay is a multi-chain protocol that streams crypto payments by the second for DAOs, teams and contractors paid in stablecoins.
Superfluid is a money streaming protocol that sends tokens by the second across ten chains, aimed at DAOs, builders and users of streaming apps.
Railgun is a zk-SNARK privacy protocol for Ethereum, Arbitrum, BNB Chain and Polygon that shields DeFi transactions, for users wanting on-chain privacy.
Hinkal is a multichain privacy protocol for shielded stablecoin transfers and swaps, with viewing-key compliance, for users, developers and enterprises.
Credit is an undercollateralized peer-to-pool USDC lending protocol on World Chain for DeFi users seeking yield and willing to take credit risk.
Save, formerly Solend, is a Solana lending and borrowing protocol where users earn interest on deposits or borrow against collateral.
Keep reading
Related guides
Wallets and tools · Explainer
MetaMask Snaps: How to Test Custom Wallet Experiences
MetaMask Snaps lets developers add custom screens, transaction warnings and new chain support to the wallet. This guide explains what snaps can change and how teams test those experiences safely before users see them.
Wallets and tools · Best list
Best Wallets for BNB Chain in 2026: Types, Picks and Setup
A practical guide to choosing a wallet for BNB Smart Chain, with the main wallet types, example wallets in each category, setup steps and security habits. Supported features and fees change, so this guide explains where to check current details.
Wallets and tools · Best list
Best Cryptocurrency Credit Cards in 2026
The best crypto card depends on whether you want a conventional credit line, borrowing against crypto, or a card that spends your crypto balance. Compare card types, eligibility, fees, rewards and tax considerations before applying in 2026.
Wallets and tools · Explainer
How Crypto Credit Cards Work: Credit, Rewards, and Risks
A crypto credit card may mean a conventional credit card that pays rewards in cryptocurrency, or a card that lets you borrow against crypto. Learn how purchases, repayment, fees, and risks differ from crypto debit and prepaid cards.
Wallets and tools · Explainer
Session Messenger Explained: Decentralized Private Chat in 2026
Session is an open-source messenger that needs no phone number or email and routes messages through a network of incentivized nodes. Here is how it works, where it differs from Signal, and what its limits are.
Wallets and tools · Explainer
What Is a Self-Custody Web3 Wallet?
A self-custody Web3 wallet lets you authorize blockchain activity without handing a platform control of your keys. Learn how wallets work, what you are responsible for, and how to use one more safely.
Wallets and tools · How-to
How to Set Up a Crypto Account Safely
A “crypto account” can mean an account at an exchange or a self-custody wallet. Learn how to choose, set one up, protect it, and make a cautious first deposit or transfer.
Wallets and tools · Explainer
Self-Custody in Crypto: What It Is and Why It Matters
Self-custody means you control the private keys to your crypto rather than a company doing it for you. This explainer covers how that works, where the trade-offs lie, and the habits that help keep funds safe.