Skip to main content

One post tagged with "partners"

View All Tags

Partner sprints on Midnight

· 6 min read
Jay Albert
Developer Relations Engineer

Every three weeks, Midnight runs a hands-on sprint with an ecosystem partner. Two weeks of quests, a working DApp at the end, partner-funded prizes. Sprint 1 with Midnames just wrapped. Sprint 2 with 1AM is live right now.

This post walks through what Sprint 1 looked like and covers what's in the 1AM sprint that just kicked off.

How partner sprints work

Every three weeks, Midnight kicks off a new sprint with a different ecosystem partner. The cadence is simple:

  • 2 weeks to complete the quests.
  • 1 week break in between sprints.
  • Real prizes from the partner each time.

Each sprint is a curated trail: pointers to the partner's website, docs, and SDK, alongside quests that put those resources to work. By the time you finish a sprint, you've spent real time inside the partner's product and shipped something against it.

If you want to follow along, then the home base is Zealy hub. Sprints rotate there.

Sprint 1 recap: Midnames

The first sprint introduced builders to Midnames, the identity layer for Midnight. Midnames lets you claim a human-readable .night name, attach data to it, and resolve it from any app. It's how onchain identity becomes legible without exposing everything about you.

The sprint window has closed, but the quests live on as a permanent module on the Zealy hub. Anyone who wants to pick up Midnames can still work through the trail at any time. The module has six quests:

  1. Explore Midnames: Visit the Midnames and midnight.domains sites to get oriented.
  2. Claim your .night domain on preprod: Each builder ends Quest 2 with their own .night name registered.
  3. Configure your domain profile: Attach metadata and custom fields to demonstrate that Midnames extends identity beyond just a name.
  4. Explore the Midnames SDK: Read the docs before you code.
  5. Query your domain data: Use the SDK locally to fetch your own profile, proving the resolver works end-to-end on your machine.
  6. Build a Midnames-powered DApp: Ship something that does at least one of: resolves a .night name, fetches its profile data, or uses it in a UI flow. Profile viewers, identity dashboards, domain-based logins. All fair game.

Quest 5 had builders install the SDK, save a small resolver script, and run it against their own domain. Roughly:

npm install @midnames/sdk
npm pkg set type=module

Save the following as resolve.ts:

import { createDefaultProvider, getDomainProfile } from "@midnames/sdk";

const domain = process.argv[2];
const provider = createDefaultProvider({ networkId: "preprod" });
const result = await getDomainProfile(domain, { provider });
console.log(result.data);

Then run it against any registered .night domain on preprod:

npx tsx resolve.ts mid.night

And you get back the full profile:

{
fullDomain: 'mid.night',
info: {
id: 1n,
owner: '12df3f624bd797491c8806eb6ebc58f8a549a951e5f89c949a279a3820bf2962',
ownerAddress: 'mn_addr_preprod126fng8agkv292zlze9ndeany7glpefzthkcyrgludcyxe646vv2q0pw8fr',
target: {
type: 'shielded',
address: 'mn_shield-cpk_preprod14gl4zzmqqx5w8dxzvqfznmh5eqfc5xkh2qee54d66f9al0xu0ttsnug8xv'
},
targetLocked: false
},
fields: Map(3) {
'profile_type' => 'company',
'avatar' => 'https://midnight.network/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2F330xhmya%2Fproduction%2Fad443f6fdbb0ae48712b1729b6a0a61be245577f-829x832.png&w=1920&q=75',
'name' => 'Midnight - Preprod'
},
settings: {
coinColor: Uint8Array(32) [
0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0
],
costs: { short: 600n, medium: 140n, long: 10n },
buyEnabled: false,
defaultField: null,
paymentConfigLocked: false
}
}

Quest 6 took it from there: Build something that does at least one useful thing with a resolved .night domain.

Top 3 builders

The top three finishers on the Midnames sprint leaderboard each won a .night domain (5+ characters).

Big shout out to:

  • 🥇 @Ivan | Edda
  • 🥈 @Cobra
  • 🥉 @cinch832

Beyond the podium, dozens of builders now have a .night domain, a configured profile, and a working SDK integration on their machine. The module is still open, so if you want a working onchain identity to plug into the 1AM sprint or anything else you build, the path is right there.

Sprint 2 is live: 1AM

Sprint 2 just kicked off with 1AM, a wallet built specifically for Midnight. 1AM is purpose-built around Midnight's dual-state architecture, with shielded transactions as the default, NIGHT and DUST in one interface, and a Proof Station for ZK proof generation.

The 1AM sprint has eight quests covering the wallet, explorer, Proof Station, no-code builder, and full DApp listing flow:

  1. Explore 1AM: Get familiar with the wallet, no-code builder, explorer, and Proof Station.
  2. Follow 1AM on X: Stay close to product updates as they ship.
  3. Create your 1AM wallet: This wallet is your identity for the rest of the sprint.
  4. Explore the 1AM Explorer: See what's tracked, what's surfaced, and what stays private.
  5. Visit the 1AM Proof Station: Understand the role it plays in 1AM-powered DApps.
  6. Build with the 1AM no-code builder: Ship a project at build.1am.xyz and submit your share link.
  7. Build a 1AM-powered DApp: Go beyond no-code. Wallet connection, real Proof Station integration, code another developer can run or extend.
  8. List your DApp on 1AM: Get it into the public 1AM directory.

Quests can be tackled in any order, and you don't have to finish all eight to participate. Pick whichever pieces of the 1AM stack you want to put your hands on.

1AM-specific prizes are up for grabs for top performers, with details on the Zealy hub.

Jump in

Partner sprints rotate every three weeks, each one with a different ecosystem partner and a different angle on the stack. Here's how to get into the 1AM sprint right now:

The pattern is the same every sprint: a real partner, a real product, and a real DApp at the end. See you on the leaderboard.