Skip to content
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
56 changes: 56 additions & 0 deletions ensawards.org/data/apps/binance-exchange/benchmarks/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
// Read https://github.com/namehash/ensawards/blob/main/CONTRIBUTING.md
// for additional advice on adding and modifying app benchmarks

import type { AcceptanceTestBenchmark } from "data/acceptance-tests/types";
import BinanceExchange from "data/apps/binance-exchange";
import { defineAppBenchmarks } from "data/benchmarks/registry";
import { BenchmarkResults } from "data/benchmarks/types";
import contributors from "data/contributors";
import { acceptanceTestDetailsContainerStyles } from "data/ens-best-practices/styles";
import type { BestPracticeBenchmarks } from "data/ens-best-practices/types";

import { parseTimestamp } from "@ensnode/ensnode-sdk";

import { cn } from "@/utils/tailwindClassConcatenation";

import correctlyResolveEnsv2TestNameAddressProofImageCopyTrading from "./correctly-resolve-ensv2-test-name-address-proof-copy-trading.gif";
import correctlyResolveEnsv2TestNameAddressProofImageWithdrawal from "./correctly-resolve-ensv2-test-name-address-proof-withdrawal.png";

const benchmarks: BestPracticeBenchmarks = {
"ensv2-ready-resolution": {
"correctly-resolve-ensv2-test-name-address": {
result: BenchmarkResults.Fail,
contributions: [
{ from: contributors.y3drk, lastUpdated: parseTimestamp("2026-06-11T07:30:06Z") },
],
notes: (
<div className={cn(acceptanceTestDetailsContainerStyles, "w-full")}>
<p className="w-full">
ENSv2 ready resolution was tested using the search tool in the &quot;copy-trading&quot;
flow. The app either doesn't allow using ENS name as the trader identifier or fails to
resolve it, both of which we interpret as a failure.
</p>
<img
alt="Binance exchange doesn't allow ENS name as trader in the copy-trading flow"
src={correctlyResolveEnsv2TestNameAddressProofImageCopyTrading.src}
className="w-auto h-full max-h-[325px] rounded-xl"
/>
<p className="w-full">
The ENSv2 ready resolution was also tested using the &quot;withdrawal&quot; flow. The
app doesn't allow using ENS name as the recipient identifier, which we interpret as a
failure.
</p>
<img
alt="Binance exchange doesn't allow ENS name as recipient in the withdrawal flow"
src={correctlyResolveEnsv2TestNameAddressProofImageWithdrawal.src}
className="w-auto h-full max-h-[325px] rounded-xl"
/>
</div>
),
} as const satisfies AcceptanceTestBenchmark,
},
};

defineAppBenchmarks(BinanceExchange, benchmarks);

export default benchmarks;
23 changes: 23 additions & 0 deletions ensawards.org/data/apps/binance-exchange/icon.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import React from "react";

import { cn } from "@/utils/tailwindClassConcatenation";

const Icon = ({ className, ...props }: React.SVGProps<SVGSVGElement>) => (
<svg
version="1.1"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 50 50"
{...props}
className={cn("p-1 fill-[#F0B90B]", className)}
>
<g>
<path
d="M11.3,25l-5.6,5.6L0,25l5.7-5.7L11.3,25z M25,11.3l9.7,9.7l5.7-5.7L25,0L9.7,15.3l5.7,5.7L25,11.3z M44.3,19.3
L38.7,25l5.7,5.7L50,25L44.3,19.3z M25,38.7L15.3,29l-5.7,5.7L25,50l15.3-15.3L34.7,29L25,38.7z M25,30.6l5.7-5.7L25,19.3L19.3,25
L25,30.6L25,30.6z"
></path>
</g>
</svg>
);

export default Icon;
29 changes: 29 additions & 0 deletions ensawards.org/data/apps/binance-exchange/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// Read https://github.com/namehash/ensawards/blob/main/CONTRIBUTING.md
// for additional advice on adding and modifying apps

import BinanceProject from "data/projects/binance";

import { defineApp } from "../registry.ts";
import { type App, AppTypes } from "../types.ts";
import BinanceIcon from "./icon.tsx";

const BinanceExchange: App = {
id: "binance-exchange",
appSlug: "binance-exchange",
type: AppTypes.Exchange,
project: BinanceProject,
name: "Binance",
description:
"Cryptocurrency exchange for buying, selling, and trading a wide range of digital assets.",
socials: {
website: new URL("https://www.binance.com"),
twitter: new URL("https://x.com/binance"),
},
icon: BinanceIcon,
ogImagePath: "binance-exchange/og.png",
twitterOgImagePath: "binance-exchange/twitter-og.png",
};

defineApp(BinanceExchange);

export default BinanceExchange;
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
54 changes: 54 additions & 0 deletions ensawards.org/data/apps/binance-wallet/benchmarks/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
// Read https://github.com/namehash/ensawards/blob/main/CONTRIBUTING.md
// for additional advice on adding and modifying app benchmarks

import type { AcceptanceTestBenchmark } from "data/acceptance-tests/types";
import BinanceWallet from "data/apps/binance-wallet";
import { defineAppBenchmarks } from "data/benchmarks/registry";
import { BenchmarkResults } from "data/benchmarks/types";
import contributors from "data/contributors";
import { acceptanceTestDetailsContainerStyles } from "data/ens-best-practices/styles";
import type { BestPracticeBenchmarks } from "data/ens-best-practices/types";

import { parseTimestamp } from "@ensnode/ensnode-sdk";

import { cn } from "@/utils/tailwindClassConcatenation";

import correctlyResolveEnsv2TestNameAddressProofImage from "./correctly-resolve-ensv2-test-name-address-proof.gif";

const benchmarks: BestPracticeBenchmarks = {
// TODO: `Contract Naming` category is temporarily hidden due to unfit content,
// and so are all benchmarks belonging to it.
// We aim to fix it as soon as we have the capacity.
// See: https://github.com/namehash/ensawards/issues/222
"display-named-smart-contracts-mainnet": {
"mainnet-interactions-display-named-smart-contracts": undefined,
},
"display-named-smart-contracts-l2-chains": {
"l2-chain-interactions-display-named-smart-contracts": undefined,
},
"ensv2-ready-resolution": {
"correctly-resolve-ensv2-test-name-address": {
result: BenchmarkResults.Fail,
contributions: [
{ from: contributors.y3drk, lastUpdated: parseTimestamp("2026-06-11T07:33:06Z") },
],
notes: (
<div className={cn(acceptanceTestDetailsContainerStyles, "w-full")}>
<p className="w-full">
ENSv2 ready resolution was tested using the &quot;send&quot; flow. The wallet doesn't
allow using ENS name as the recipient identifier, which we interpret as a failure.
</p>
<img
alt="Binance Wallet doesn't allow ENS name as recipient in the send flow"
src={correctlyResolveEnsv2TestNameAddressProofImage.src}
className="w-auto h-full max-h-[325px] rounded-xl"
/>
</div>
),
} as const satisfies AcceptanceTestBenchmark,
},
};

defineAppBenchmarks(BinanceWallet, benchmarks);

export default benchmarks;
23 changes: 23 additions & 0 deletions ensawards.org/data/apps/binance-wallet/icon.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import React from "react";

import { cn } from "@/utils/tailwindClassConcatenation";

const Icon = ({ className, ...props }: React.SVGProps<SVGSVGElement>) => (
<svg
version="1.1"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 50 50"
{...props}
className={cn("p-1 fill-[#F0B90B]", className)}
>
<g>
<path
d="M11.3,25l-5.6,5.6L0,25l5.7-5.7L11.3,25z M25,11.3l9.7,9.7l5.7-5.7L25,0L9.7,15.3l5.7,5.7L25,11.3z M44.3,19.3
Comment thread
Y3drk marked this conversation as resolved.
L38.7,25l5.7,5.7L50,25L44.3,19.3z M25,38.7L15.3,29l-5.7,5.7L25,50l15.3-15.3L34.7,29L25,38.7z M25,30.6l5.7-5.7L25,19.3L19.3,25
L25,30.6L25,30.6z"
></path>
</g>
</svg>
);

export default Icon;
29 changes: 29 additions & 0 deletions ensawards.org/data/apps/binance-wallet/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// Read https://github.com/namehash/ensawards/blob/main/CONTRIBUTING.md
// for additional advice on adding and modifying apps

import BinanceProject from "data/projects/binance";

import { defineApp } from "../registry.ts";
import { type App, AppTypes } from "../types.ts";
import BinanceIcon from "./icon.tsx";

const BinanceWallet: App = {
id: "binance-wallet",
appSlug: "binance-wallet",
type: AppTypes.Wallet,
project: BinanceProject,
name: "Binance Wallet",
description:
"Self-custodial Web3 wallet for managing digital assets and interacting with decentralized applications across multiple chains.",
socials: {
website: new URL("https://web3.binance.com/"),
twitter: new URL("https://x.com/binance"),
},
icon: BinanceIcon,
ogImagePath: "binance-wallet/og.png",
twitterOgImagePath: "binance-wallet/twitter-og.png",
};

defineApp(BinanceWallet);

export default BinanceWallet;
Binary file added ensawards.org/data/apps/binance-wallet/og.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
44 changes: 44 additions & 0 deletions ensawards.org/data/apps/coinbase-exchange/benchmarks/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// Read https://github.com/namehash/ensawards/blob/main/CONTRIBUTING.md
// for additional advice on adding and modifying app benchmarks

import type { AcceptanceTestBenchmark } from "data/acceptance-tests/types";
import CoinbaseExchange from "data/apps/coinbase-exchange";
import { defineAppBenchmarks } from "data/benchmarks/registry";
import { BenchmarkResults } from "data/benchmarks/types";
import contributors from "data/contributors";
import { acceptanceTestDetailsContainerStyles } from "data/ens-best-practices/styles";
import type { BestPracticeBenchmarks } from "data/ens-best-practices/types";

import { parseTimestamp } from "@ensnode/ensnode-sdk";

import { cn } from "@/utils/tailwindClassConcatenation";

import correctlyResolveEnsv2TestNameAddressProofImage from "./correctly-resolve-ensv2-test-name-address-proof.png";

const benchmarks: BestPracticeBenchmarks = {
"ensv2-ready-resolution": {
"correctly-resolve-ensv2-test-name-address": {
result: BenchmarkResults.Fail,
contributions: [
{ from: contributors.y3drk, lastUpdated: parseTimestamp("2026-06-12T09:01:23Z") },
],
notes: (
<div className={cn(acceptanceTestDetailsContainerStyles, "w-full")}>
<p className="w-full">
ENSv2 ready resolution was tested using the &quot;send&quot; flow. The resolved address
is <i>NOT</i> correct.
</p>
<img
alt="Coinbase exchange fails to resolve the name for ENSv2"
src={correctlyResolveEnsv2TestNameAddressProofImage.src}
className="w-auto h-full max-h-[325px] rounded-xl"
/>
</div>
),
} as const satisfies AcceptanceTestBenchmark,
},
};

defineAppBenchmarks(CoinbaseExchange, benchmarks);

export default benchmarks;
20 changes: 20 additions & 0 deletions ensawards.org/data/apps/coinbase-exchange/icon.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import React from "react";

import { cn } from "@/utils/tailwindClassConcatenation";

const Icon = ({ className, ...props }: React.SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 40 40"
{...props}
className={cn("p-0.5", className)}
>
<path
fill="#0052FF"
d="M20.032 28.5c-4.705 0-8.516-3.804-8.516-8.5s3.81-8.5 8.516-8.5a8.51 8.51 0 0 1 8.388 7.083H37C36.276 9.857 28.96 3 20.032 3 10.629 3 3 10.615 3 20s7.629 17 17.032 17C28.959 37 36.276 30.143 37 21.417h-8.58a8.51 8.51 0 0 1-8.388 7.083"
/>
</svg>
);

export default Icon;
28 changes: 28 additions & 0 deletions ensawards.org/data/apps/coinbase-exchange/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// Read https://github.com/namehash/ensawards/blob/main/CONTRIBUTING.md
// for additional advice on adding and modifying apps

import CoinbaseProject from "data/projects/coinbase";

import { defineApp } from "../registry.ts";
import { type App, AppTypes } from "../types.ts";
import CoinbaseIcon from "./icon.tsx";

const CoinbaseExchange: App = {
id: "coinbase-exchange",
appSlug: "coinbase-exchange",
type: AppTypes.Exchange,
project: CoinbaseProject,
name: "Coinbase",
description:
"Cryptocurrency exchange for buying, selling, and trading a wide range of digital assets.",
socials: {
website: new URL("https://www.coinbase.com"),
twitter: new URL("https://x.com/coinbase"),
},
icon: CoinbaseIcon,
// TODO: Add OG images
};

defineApp(CoinbaseExchange);

export default CoinbaseExchange;
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
44 changes: 44 additions & 0 deletions ensawards.org/data/apps/cryptocom-exchange/benchmarks/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// Read https://github.com/namehash/ensawards/blob/main/CONTRIBUTING.md
// for additional advice on adding and modifying app benchmarks

import type { AcceptanceTestBenchmark } from "data/acceptance-tests/types";
import CryptoComExchange from "data/apps/cryptocom-exchange";
import { defineAppBenchmarks } from "data/benchmarks/registry";
import { BenchmarkResults } from "data/benchmarks/types";
import contributors from "data/contributors";
import { acceptanceTestDetailsContainerStyles } from "data/ens-best-practices/styles";
import type { BestPracticeBenchmarks } from "data/ens-best-practices/types";

import { parseTimestamp } from "@ensnode/ensnode-sdk";

import { cn } from "@/utils/tailwindClassConcatenation";

import correctlyResolveEnsv2TestNameAddressProofImage from "./correctly-resolve-ensv2-test-name-address-proof.gif";

const benchmarks: BestPracticeBenchmarks = {
"ensv2-ready-resolution": {
"correctly-resolve-ensv2-test-name-address": {
result: BenchmarkResults.Fail,
contributions: [
{ from: contributors.y3drk, lastUpdated: parseTimestamp("2026-06-11T13:47:40Z") },
],
notes: (
<div className={cn(acceptanceTestDetailsContainerStyles, "w-full")}>
<p className="w-full">
ENSv2 ready resolution was tested using the &quot;withdrawal&quot; flow. The app doesn't
allow using ENS name as the recipient identifier, which we interpret as a failure.
</p>
<img
alt="Crypto.com exchange doesn't allow ENS name as recipient in the withdrawal flow"
src={correctlyResolveEnsv2TestNameAddressProofImage.src}
className="w-auto h-full max-h-[325px] rounded-xl"
/>
</div>
),
} as const satisfies AcceptanceTestBenchmark,
},
};

defineAppBenchmarks(CryptoComExchange, benchmarks);

export default benchmarks;
22 changes: 22 additions & 0 deletions ensawards.org/data/apps/cryptocom-exchange/icon.tsx

Large diffs are not rendered by default.

29 changes: 29 additions & 0 deletions ensawards.org/data/apps/cryptocom-exchange/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// Read https://github.com/namehash/ensawards/blob/main/CONTRIBUTING.md
// for additional advice on adding and modifying apps

import CryptoComProject from "data/projects/cryptocom";

import { defineApp } from "../registry.ts";
import { type App, AppTypes } from "../types.ts";
import CryptoComIcon from "./icon.tsx";

const CryptoComExchange: App = {
id: "cryptocom-exchange",
appSlug: "cryptocom-exchange",
type: AppTypes.Exchange,
project: CryptoComProject,
name: "Crypto.com",
description:
"Cryptocurrency exchange for buying, selling, and trading a wide range of digital assets.",
socials: {
website: new URL("https://crypto.com"),
twitter: new URL("https://x.com/cryptocom"),
},
icon: CryptoComIcon,
ogImagePath: "cryptocom-exchange/og.png",
twitterOgImagePath: "cryptocom-exchange/twitter-og.png",
};

defineApp(CryptoComExchange);

export default CryptoComExchange;
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading