Decentralized naming for wallets, websites, & more.

No more copying and pasting long addresses. Use your .pls name to store your digital identity.

Redirecting...

hello.pls
๐Ÿ’ธ๐Ÿš€๐Ÿ‹.pls
william.pls
richard.pls
15K+
names
500+
integrations
3K+
owners

The Pulsechain Name Service (PNS)

Unique Name
The globally unique .pls domain name replaces the meaningless, unreadable, and unmemorable long addresses.
Aggregated Identity
PNS binds different addresses in a multi-chain ecosystem. It brings together fragmented identities into one.
On-Chain Security
PNS is built on smart contracts on the Pulsechain blockchain, meaning it doesn't suffer from the insecurity of the DNS system.

Onchain is the next online.

Web3 Usernames
No more sandboxed usernames. Own your username, create subnames and leverage your usnername across the fast see of web3.
ted.pls
๐Ÿ’ธ๐Ÿš€๐Ÿ‹.pls
pulsealert.pls
๐Ÿ˜Ž ๐Ÿˆน๐Ÿ”ฅ.pls
ted.pls
๐Ÿ’ธ๐Ÿš€๐Ÿ‹.pls
pulsealert.pls
๐Ÿ˜Ž ๐Ÿˆน๐Ÿ”ฅ.pls
ted.pls
๐Ÿ’ธ๐Ÿš€๐Ÿ‹.pls
pulsealert.pls
๐Ÿ˜Ž ๐Ÿˆน๐Ÿ”ฅ.pls
katieepcrypto.pls
cryptocoffee.pls
lolz.pls
nick.pls
katieepcrypto.pls
cryptocoffee.pls
lolz.pls
nick.pls
katieepcrypto.pls
cryptocoffee.pls
lolz.pls
nick.pls
pump.pls
๐Ÿ‘‹.pls
sickmund.pls
mati.pls
pump.pls
๐Ÿ‘‹.pls
sickmund.pls
mati.pls
pump.pls
๐Ÿ‘‹.pls
sickmund.pls
mati.pls
NFTs
Now you have a home for all of your NFTโ€™s on PulseChain, you can display them all via your on-chain profile for the world to see
On-chain linktree
Create your unique profile and display on-chain and off-chain data such as cross-chain addresses, websites, social links and to receive payments.
Simple address
Use a human-readable and memorable name to replace your addresses. Use your .pls domain name across the Web3 ecosystem.
Web3 Integrated
Use your username across web3, with either native .pls integrations or branch out into the world of Cross-Chain Interoperability with ChainLinkโ€™s CCIP.
dWeb gateway
Connect your decentralized website to your domain name, which becomes accessible across all browsers & devices.
Native integrations offer full PNS support, while CCIP integrations offer full to partial support of the PNSย system.

Developer Tools

Crafted for developers, by developers. We offer a range of integration options designed for smooth sailing from start to finish.

import { PNS } from '@pnsdomains/pnsjs'

const pns = new PNS();

// Resolve address to primary .pls name
const name = await pns.getName('0x6CbfDa597919672e8444356234fEDd0Ab7e45e14');

// Resolve .pls name to address
const profile = await pns.getProfile('alice.pls');
const address = profile?.address
Go to Docs

import { Chain, ChainProviderFn, configureChains, createClient } from 'wagmi'
import { jsonRpcProvider } from 'wagmi/providers/jsonRpc'
import { connectorsForWallets } from '@rainbow-me/rainbowkit'
import {
  coinbaseWallet,
  metaMaskWallet,
  walletConnectWallet,
} from '@rainbow-me/rainbowkit/wallets'

const providerArray: ChainProviderFn[] = []

const mainnet: Chain = {
  id: 369,
  name: 'PulseChain',
  network: 'pulse',
  nativeCurrency: {
    name: 'Pulse Coin',
    symbol: 'PLS',
    decimals: 18,
  },
  rpcUrls: {
    default: {
      http: ['https://rpc.pulsechain.com']
    },
    public: {
      http: ['https://rpc.pulsechain.com']
    },
  },
  blockExplorers: {
    default: {
      name: 'PulseChain Explorer',
      url: 'https://otter.pulsechain.com',
    }
  },
  contracts: {
    ensRegistry: {
      address: '0xbd5133993FCDED5945c5539D9f032261F0d13170'
    },
    ensUniversalResolver: {
      address: '0x6644e794F5aFfb8abcfea0e71d5624D013BA2dBA'
    }
  }
}

providerArray.push(
  jsonRpcProvider({
    rpc: (chain) => {
      if (chain.id === 369) {
        return { http: 'https://rpc.pulsechain.com' }
      }
      return null
    },
  })
)

const { provider, chains } = configureChains([
  mainnet,
], providerArray)

const wallets = connectorsForWallets([
  {
    groupName: 'GROUP_NAME',
    wallets: [
      coinbaseWallet({ chains, appName: 'APP_NAME' }),
      metaMaskWallet({ chains, projectId: 'WALLET_CONNECT_PROJECT_ID' }),
      walletConnectWallet({ chains, projectId: 'WALLET_CONNECT_PROJECT_ID' })
    ]
  }
])

const wagmiClient = createClient({
  autoConnect: true,
  connectors: wallets(),
  provider,
  persister: null,
})
Go to Docs

import { ethers } from "ethers";

const provider = new ethers.providers.JsonRpcProvider('https://rpc.pulsechain.com', {
  name: 'Pulse Chain',
  chainId: 943,
  ensAddress: '0xbd5133993FCDED5945c5539D9f032261F0d13170',
})

// Resolve address to primary .pls name
const name = await provider.lookupAddress('0x6CbfDa597919672e8444356234fEDd0Ab7e45e14');

// Resolve .pls name to address
const address = await provider.resolveName('alice.pls');
Go to Docs

FAQs

If you can't find what you're looking for, please don't hesitate to contact support.
Is my .pls name only for storing a Pulsechain address?
What does it cost to register a .pls domain?
Once I own a name, can I create my own subdomains?
What happens if I forget to extend the registration of a name?
Which wallets and dApps support PNS so far?

A fast-growing, global community

Join a fast-growing community of developers and innovators connected all over the world, building the new era of the internet.
Telegram
Community Chat
Ask general questions and chat with the worldwide community on Telegram.
Twitter
Twitter
Follow @PulseDomains_ to get the latest news and updates from across the ecosystem.