Reef docs
Reef is a permissionless exchange on BlockDAG (chain 1404). Swap tokens, earn fees by providing liquidity, or open a pool for any token. No sign-up, no gatekeeping, and your funds never leave your wallet until you sign.
How it works in one paragraph
Reef is an automated market maker (AMM), built on the well-tested Uniswap V2 design. Each pool holds two tokens. The price comes from the ratio between them: when you buy one token, you add the other, and the price moves. People who deposit tokens into a pool are called liquidity providers (LPs). They earn a share of every trade, in return for taking on impermanent loss risk.
Getting started
What you need
- A browser wallet such as MetaMask (on desktop or in the wallet's own browser on phone).
- Some BDAG on BlockDAG (chain 1404) to pay network fees, and for whatever you want to trade.
Connect
- Open reefdex.fyi and press Connect wallet.
- The first time, Reef shows a short risk notice. Read it, tick both boxes and continue.
- If your wallet isn't on BlockDAG yet, Reef asks it to add or switch to the network. Approve that in your wallet.
Network details
| Setting | Value |
|---|---|
| Network name | BlockDAG |
| Chain ID | 1404 |
| Currency symbol | BDAG (18 decimals) |
| RPC | Any working endpoint from Reef's RPC status panel, e.g. https://rpc.blockdag.engineering |
| Explorer | explorer.bdagexplorer.com |
Swapping
- On the Swap tab, choose the token you're paying with and the token you want. The picker lists every token that has a Reef pool, or you can paste a contract address.
- Type an amount. Reef shows how much you'll receive, the minimum you'll accept, and the price impact.
- If you're paying with a token rather than BDAG, your wallet first asks you to approve it. Then confirm the swap.
Routing through BDAG
If two tokens don't share a pool, but both have a pool with BDAG, Reef routes the trade through BDAG automatically (token A → BDAG → token B). You pay the 0.30% fee on each step.
Slippage and deadline
Prices can move between when you press swap and when your transaction lands. Slippage tolerance (default 0.5%, change it with the settings icon) is the most you'll let the price move against you. If it moves further, the swap cancels and nothing is spent except the network fee. Every swap also has a 20-minute deadline, so a transaction stuck in the queue can't fill hours later at a stale price.
Tokens with a transfer tax
Some tokens take a percentage every time they move. Reef can buy these, but selling them through Reef always fails. Check for a transfer tax before you buy.
Price impact warnings
A big trade in a small pool moves the price a lot. Reef shows a warning at 3% impact, a stronger one at 10%, and asks you to tap twice to confirm. At 30% or more it tells you to reduce the amount. Splitting a large trade into smaller ones usually gets a better average price.
Chart, trades and badges
For a direct pair, Reef shows a price chart and recent trades read straight from the pool's own on-chain events, with no third-party price feed. Some pools also show a liquidity lock badge (the LP tokens are held in a time-lock) or a TWAP badge (a time-averaged price oracle is running for that pool).
Providing liquidity
Liquidity providers deposit two tokens into a pool, in the pool's current ratio. In return they receive LP tokens, which represent their share of the pool. Every swap pays 0.25% into the pool, so the value of each LP token slowly grows with trading volume.
Add liquidity
- On the Pool tab, choose the two tokens.
- Enter an amount for one. Reef fills in the other at the pool's current ratio.
- Approve each token if asked, then confirm. The LP tokens arrive in your wallet.
Remove liquidity
- On the Pool tab, select the pool and choose how much to withdraw (25%, 50%, 75% or Max).
- Confirm. You get back your share of both tokens, including the fees earned while you were in.
Creating a pool
Anyone can create a pool for any two tokens. If no pool exists yet, adding liquidity creates one.
- A tiny amount of the first deposit (1,000 of the smallest LP units, far less than a cent) is locked forever. This is a standard protection against a pricing attack on new pools.
- A pool on Reef is not an endorsement. Tokens can be fake, mislabelled or malicious. Traders should always check a token's contract address against a source they trust.
- Launching a token? Consider locking your LP tokens in a time-lock contract and publishing the address. It's the easiest way to show buyers you can't pull the liquidity.
Impermanent loss
When the price of one token in a pool moves, traders rebalance the pool and your share of the two tokens shifts with it. You end up with more of the token that fell and less of the token that rose. Compared with simply holding the two tokens, that costs you something. This is called impermanent loss, because it disappears if the price returns to where it was when you deposited.
| If one token's price changes by | Your position compared with just holding |
|---|---|
| 1.25× or 0.8× | −0.6% |
| 1.5× or 0.67× | −2.0% |
| 2× or 0.5× | −5.7% |
| 3× or 0.33× | −13.4% |
| 5× or 0.2× | −25.5% |
These figures are before fees. Trading fees earned can make up for it, but on a quiet pool or a token that moves a lot, they may not. Pools of two tokens that tend to move together have the least impermanent loss.
Fees
| Fee | Amount | Goes to |
|---|---|---|
| Swap fee | 0.30% of the amount in | Split below |
| Liquidity providers | 0.25% | Stays in the pool, shared by all LPs |
| Protocol fee | 0.05% | Reef treasury |
| Network fee | Varies | BlockDAG validators, paid in BDAG |
That's all of it. No deposit or withdrawal fees, no hidden spread, and no fee for creating a pool.
The protocol fee works the same way as in Uniswap V2: it isn't taken from each swap separately. Instead, when liquidity is next added or removed, the pool mints new LP tokens to the treasury equal to one-sixth of the fees earned since the last time. The protocol fee has been on since launch. It can only be switched on or off by the multisig.
Safety and control
What nobody can do
Reef's Router and Factory have no owner or admin. Nobody, including the team, can pause trading, block a wallet, freeze a pool, change the 0.30% swap fee or move funds out of a pool.
The one privileged role
The Factory has a single setting, feeToSetter, which decides where the 0.05% protocol fee goes (or turns it off) and can hand that role to another address. It cannot touch liquidity already in pools or stop anyone trading. It's held by a 2-of-2 multisig with separate Trezor and Ledger hardware-wallet signers, so no single key can use it.
Approvals
When Reef asks you to approve a token, it asks for the exact amount of that trade or deposit, not unlimited spending. You can check and revoke approvals at any time on the explorer or with a tool like revoke.cash if it supports the chain.
Good habits
- Bookmark reefdex.fyi and only use that address. Check the contract addresses your wallet shows before you sign.
- Check a token's contract address with its project before you buy. The token name and symbol can be copied by anyone.
- Use a separate wallet for trying new tokens.
RPC status
Reef reads prices and balances through public BlockDAG endpoints (RPCs). The RPC status button in the app lists them, shows which are responding and lets you pick a faster one.
On a young chain, public endpoints don't always agree. An endpoint can report chain ID 1404 while serving a different history of blocks. Reef cross-checks endpoints against each other and flags any that don't match the others. That shows whether they agree; it can't prove on its own which one is correct. For larger amounts, double-check on the explorer before you rely on a quote.
Your wallet uses its own RPC for anything you sign, separate from the one Reef reads from.
Contracts
Check these against the addresses your wallet shows before you approve or sign.
Pool (pair) addresses are created by the Factory. Read any pool's address with getPair(tokenA, tokenB) on the Factory.
Source code and tests
The full source for these contracts, with the test suite, is on GitHub. On 2 October 2026 every address above was checked against it: the code on chain is exactly what the published files compile to. The same folder lists the known findings from a pre-audit review.
Leaving beta
Reef is labelled beta and will stay that way until these are done. There are no fixed dates; each step happens when it's ready, and progress is posted on X.
- An independent security audit of the contracts.
- Moving the admin multisig from 2-of-2 to 2-of-3, so a single lost key can't lock the fee setting.
- A public bug bounty.
For builders
Reef uses the Uniswap V2 interface, so most existing V2 tools and code work once you point them at Reef's Router and Factory. Native BDAG functions use BDAG where Uniswap uses ETH, for example swapExactBDAGForTokens and addLiquidityBDAG.
Get a quote (ethers v6)
const router = new ethers.Contract(
"0xbd6fbA41Ab84292163A599510a12d6Bf8B7CCc76",
["function getAmountsOut(uint256,address[]) view returns (uint256[])"],
provider
);
const WBDAG = "0x62ba5c4F067989a7f6644488C875bEa69Bfa1FBA";
const amounts = await router.getAmountsOut(ethers.parseEther("1"), [WBDAG, TOKEN]);
console.log("1 BDAG buys", ethers.formatUnits(amounts[1], TOKEN_DECIMALS));
Main Router functions
swapExactTokensForTokens,swapExactBDAGForTokens,swapExactTokensForBDAGaddLiquidity,addLiquidityBDAG,removeLiquidity,removeLiquidityBDAGgetAmountsOutfor quotes
Reef is also a liquidity source for the Nodal aggregator, so a pool on Reef is reachable from there too.
Building on Reef or listing it somewhere? Get in touch on X: @benji107.
$REEF
$REEF is Reef's own token. The official contract address and presale details will be published here and on X when the presale opens. Until then, treat any "$REEF" you see elsewhere as fake.
Does holding $REEF pay me anything?
No. $REEF does not pay holders any share of Reef's fees or revenue. If you want income from Reef, that comes from providing liquidity: LPs in the REEF/BDAG pool earn 0.25% of every trade in it, like any other pool. A time-limited reward for REEF/BDAG liquidity providers is being considered, but it isn't promised.
So what is it for?
The plan is for $REEF to act as a trust bond across Reef, Nodal and Handshake, with uses added over time. That's a direction, not a promise, and none of it is live yet. Buy it only if you're comfortable with it being worth nothing.
Brand assets
Listing Reef on a tracker, wallet or article? Use these files. Please don't change the wordmark's shape or colours.

Colours
#050f14#0a71a1#7fd0f7#c23a5e#e7f3f5Fonts: Bricolage Grotesque for headings, Instrument Sans for text. Both are free on Google Fonts.
FAQ
Has Reef been audited?
Not yet. An independent audit is the first step to leaving beta. Until then, only use amounts you're comfortable losing.
Why did my swap fail?
Usually the price moved more than your slippage tolerance before it landed, or the 20-minute deadline passed. Nothing is spent except the network fee. Try again, or raise slippage slightly for a fast-moving token. If you're selling a token that takes a tax on every transfer, see the next question.
Can I trade tokens that take a tax on transfers?
You can buy them, but you can't sell them through Reef: the sale always fails, whatever slippage you set. Reef's router doesn't include Uniswap's special functions for taxed tokens. Check whether a token has a transfer tax before you buy it on Reef.
Why is my approval for a specific amount?
Reef asks for exactly what each trade needs, rather than unlimited spending. It means one extra click for repeat trades, but a token approval can never be used for more than you intended.
Can I lose money providing liquidity?
Yes. If the two tokens' prices move apart, impermanent loss can outweigh the fees you earn. If one token goes to zero, you'll be left holding mostly that token.
A token I want isn't in the list.
The list shows tokens that already have a Reef pool. Paste the token's contract address into the picker to find it. If it has no pool yet, you can create one.
Is Reef part of BlockDAG?
No. Reef is independent software running on BlockDAG (chain 1404). It isn't issued, endorsed or run by BlockDAG.