Skip to main content

Pay by name, not by hex

Nobody wants to share a 2,368-byte hex string. SPECTER integrates with ENS (Ethereum Name Service) and SuiNS (Sui Name Service) so senders can just use a name like alice.eth or alice.sui.

How it works

  1. You upload your meta-address to IPFS (via Pinata gateway)
  2. You set your ENS or SuiNS text record to point at the IPFS content hash (CID)
  3. A sender resolves your name, fetches the meta-address from IPFS, and proceeds with normal stealth payment creation
The API handles the resolution automatically:
# Resolve an ENS name
curl -s -X POST https://backend.specterpq.com/api/v1/ens/resolve \
  -H "Content-Type: application/json" \
  -d '{"name": "alice.eth"}' | jq .

# Resolve a SuiNS name
curl -s -X POST https://backend.specterpq.com/api/v1/suins/resolve \
  -H "Content-Type: application/json" \
  -d '{"name": "alice.sui"}' | jq .

ENS setup

Upload meta-address to IPFS

curl -s -X POST https://backend.specterpq.com/api/v1/ipfs/upload \
  -H "Content-Type: application/json" \
  -d '{"meta_address": "<YOUR_META_ADDRESS>"}' | jq .
Save the returned IPFS CID.

Set ENS text record

Go to the ENS Manager App and set a text record on your name:
  • Key: specter.meta-address
  • Value: the IPFS CID from step 1

Verify resolution

curl -s -X POST https://backend.specterpq.com/api/v1/ens/resolve \
  -H "Content-Type: application/json" \
  -d '{"name": "yourname.eth"}' | jq .

SuiNS setup

Same pattern, different name service:

Upload meta-address to IPFS

Same as ENS: upload via the IPFS endpoint and save the CID.

Set SuiNS record

Configure your SuiNS name to include the IPFS CID pointing to your meta-address.

Verify resolution

curl -s -X POST https://backend.specterpq.com/api/v1/suins/resolve \
  -H "Content-Type: application/json" \
  -d '{"name": "yourname.sui"}' | jq .

IPFS endpoints

EndpointPurpose
POST /api/v1/ipfs/uploadUpload meta-address, returns IPFS CID
GET /api/v1/ipfs/fetch/:cidFetch meta-address by CID
SPECTER uses Pinata as the IPFS gateway. The backend needs PINATA_JWT, PINATA_GATEWAY_URL, and PINATA_GATEWAY_TOKEN environment variables configured.

Why IPFS?

Meta-addresses are ~2.4 KB (two ML-KEM public keys). Storing that directly in ENS text records works but is gas-expensive. IPFS stores the full payload off-chain with a small CID on-chain, keeping costs reasonable.

Private payments

How the full payment flow works with name resolution.

API reference

Full ENS and SuiNS endpoint documentation.