NDAX asked for a loyalty programme

NDAX asked for a loyalty programme

It needed one view of the customer first.

Get in touch now

NDAX ran several products and could see a customer in each of them separately. Aetsoft showed that a rewards scheme built on those records would repeat the problem, specified the unified customer data layer underneath it, and designed a loyalty engine on top that NDAX's own team could run.

NDAX asked Aetsoft to design a loyalty programme. Customer records sat in one system per product, and campaigns were built and measured in different tools, so nobody was working from the whole customer. In two months we analysed the market and the product portfolio, tested the reasoning with NDAX, and agreed a concept. We handed the internal engineering team a documentation set ready for development: product requirements, software requirements, system architecture and complete UX/UI designs.

001

Client

NDAX Inc., a regulated Canadian cryptocurrency exchange trading since 2018. Individuals and institutions buy, sell, stake and trade digital assets through it.

002

Challenge

Customer data was split by product and by tool. Marketing could run campaigns, but only against the slice of behaviour whichever system happened to hold, which meant no segment, no model and no personalisation could see the customer whole. Every new product would add another slice.

003

Solution

A unified customer data layer holding one 360 degree view of every customer, and a configurable loyalty engine on top of it. The layer is what makes segmentation, machine learning and personalisation possible at all. The engine is what lets NDAX act on them: staff set the behaviour they want to encourage, choose what to give for it, and change either without waiting for a new software release.

004

Aetsoft's role

Market and portfolio analysis, the business and gamification concept, then the development-ready documentation set: a product requirements document, a software requirements specification, a system architecture and complete UX/UI designs.

Two months
Q3 2023
Business case definition
Documentation ready for development
Handed to NDAX's engineers
Two months
Q3 2023
Business case definition
Documentation ready for development
Handed to NDAX's engineers
Pavel Sivayeu, CTO at Aetsoft

Engagement lead

Pavel Sivayeu

Led delivery and technical direction.

Commercial lead, Aetsoft Inc

Engagement lead

Artem Kirylin

Led consulting, the client relationship and loyalty gamification.

Every campaign ran on a fraction of the customer data

NDAX's products had been built and grown separately, each with its own records. The exchange held trading, the OTC desk held its own clients, and the education product held who had learned what. Each record was accurate as far as it went. None of them was a customer.

Campaign tooling compounded it. Marketing could segment and send, but only inside whichever system held the data it needed, so a campaign aimed at active traders was blind to what those same people did anywhere else.

Three things follow from that, and each cost NDAX something.

  • Incentives had to be priced by product when they should have been priced by customer. A fee promotion could only value a customer by their trading, so a heavy trader who never touched the other products looked identical to one using half the business.
  • Segments were built on partial data, and any model trained on them would inherit the same gaps. Personalisation was out of reach for the same reason.
  • Every new product would arrive with its own records, its own campaign tooling, and its own partial view. The problem compounded with growth.

Underneath all three is one limit. You cannot deliberately change customer behaviour you cannot see. Reading what one product reports tells you what already happened. Deciding which behaviour you want more of, then building something that produces it, needs the whole customer in one place.approved it.

Three things follow from that, and each cost NDAX something.

Three things follow from that, and each cost NDAX something.

  • Incentives had to be priced by product when they should have been priced by customer. A fee promotion could only value a customer by their trading, so a heavy trader who never touched the other products looked identical to one using half the business.
  • Segments were built on partial data, and any model trained on them would inherit the same gaps. Personalisation was out of reach for the same reason.
  • Every new product would arrive with its own records, its own campaign tooling, and its own partial view. The problem compounded with growth.

Underneath all three is one limit. You cannot deliberately change customer behaviour you cannot see. Reading what one product reports tells you what already happened. Deciding which behaviour you want more of, then building something that produces it, needs the whole customer in one place.approved it.

The brief was a loyalty programme. What the analysis showed was that a loyalty programme was the second problem to solve.

Once we had looked at the portfolio and
the data, the loyalty question answered
itself

A rewards scheme reads customer behaviour and pays for some of it. Built on split records it can only pay for what one product can see, so it repeats the flaw it was meant to fix and adds a fourth tool to the estate. Assemble the customer first and the programme gets much easier to design.

The two questions a reward scheme turns on have already been answered: what this customer does across the business, and what they are worth to it.

We put that case to NDAX. It was not what they had asked for, and it was the recommendation the business agreed to explore.

The business case

One view and one engine, instead of a campaign tool per product

The business case

Most fintech estates run a promotion per product, owned by different teams and blind to each other. The same customer gets chased several times and rewarded for what they were doing anyway. Nobody can say what a customer is worth across the business, or what it would cost to change what they do.

One customer view with one engine on top changes what the business can decide. The behaviour it wants and the place it pays for that behaviour no longer have to be the same product. A first trade could be rewarded on the OTC side. Time spent in the education product could be the cheapest route into a product somebody has never opened. The cost of an incentive gets set against the value of the customer, and not against the P&L of whichever team ran the campaign.

The unified data layer keeps earning after the campaigns stop. Customer behaviour held as consistent events is the raw material for segmentation, for churn and propensity models, for personalisation and pricing, and for deciding which products to build.

It is also what an agent needs before it can act on a customer at all. We later built an AI assistant for loyalty management for a different client, and it works because the data underneath it was organised first.

Our blockchain consulting practice works back from the business problem, then carries the answer into the product and architecture. For NDAX, that meant defining the customer view the business needed before designing the loyalty programme.

Study one: what crypto exchanges pay for customer actions

We covered eleven venues, split between the large global platforms that set customer expectations everywhere and the mid-sized Canadian ones NDAX competes with directly. For each we logged the offer and its terms:

  • Tiered fees, keyed to thirty-day volume and token holdings.
  • Referral schemes with qualifying deposits.
  • Affiliate programmes with revenue share and monthly targets.
  • Savings products, cashback and daily check-in rewards.

This fixed the going rate, which NDAX needed before pricing anything. It could not tell us how to earn the behaviour in the first place. Everyone in the sample had been at it about five years and most were copying each other.

Study two: how retail banking does what crypto had not worked out

The second study went outside crypto deliberately, and we chose the industry on an explicit rule. We wanted one that already ran all three of the things NDAX was asking for. A single customer view across several products. Models trained on that data. And a loyalty scheme built to change behaviour, not merely to thank it.

Retail banking is the closest such industry to a fintech portfolio. It is regulated, multi-product, decades into loyalty and gamification, and it works on exactly NDAX's customer: somebody holding several accounts and using two of them.

What the comparison showed:

  • A bank can name the customer action a scheme exists to produce. Most exchange schemes reward volume that was going to happen anyway.
  • Retail progression is designed around a customer's lifetime, and keeps working long after a fourteen-day event window closes.
  • The bank schemes that work sit on a customer record the whole business shares. NDAX had arrived at the same requirement from the other direction, which is what told us the reframe was right.

Coalition loyalty models came out of retail for the same reason, long before fintech took an interest.

What we did with both

  • Match the category where it has set customer expectations. Leaderboards, status progression and quests are close to universal, so they go in and take no more of the design budget than that.
  • Do properly what the category does thinly. Everything drawn from game design, as opposed to finance, was missing or poorly executed. Progression is the clearest case. Several exchanges run a progress bar against deposits inside a timed event, which buys a burst of activity and then nothing.
  • Build for the portfolio before the exchange. This came straight from retail banking and became the spine of the concept.

Two months, four Aetsoft specialists,
and a decision made every few days

An Aetsoft delivery manager, game designer, business analyst and system architect worked the problem together throughout, on two calls a week with NDAX. Five stages, in order.

How the engagement ran

001

Analyse the products
and the commercial levers

We worked through the internal systems behind each product and what each could report, the third-party integrations available, and the commercial levers inside each product.

Those levers differ sharply, and the difference decides everything downstream. A trading fee discount, a waived withdrawal fee and early access to a feature cost the business very different amounts, and appeal to very different customers.

The two market studies ran alongside this.

How the engagement ran

002

Turn the analysis into hypotheses
NDAX could test and reject

Analysis produces opinions. We turned ours into claims NDAX could disagree with, so nothing reached the concept untested.

The first set named the behaviours we believed carried real value across the portfolio, and the signals in a customer's activity that would identify them reliably enough to act on. The second set was harder and more useful: which customers are worth moving at all. Some were already doing what the business wanted and would have cost money to reward for it.

Each hypothesis was put up, argued over, and either kept, narrowed or dropped.

How the engagement ran

003

Build the concept
and get it approved

The surviving hypotheses became the business concept and the gamification concept. What the system was for, whose behaviour it existed to change, which mechanics suited which behaviour, and what the business would give up in return. NDAX validated and approved it before any specification work began.

How the engagement ran

004

Specify it to a standard
an engineering team can build from

Documentation standards vary widely across the software industry, and "specification" can mean anything from a wish list to a buildable definition. We wrote the second kind. A product requirements document.

A software requirements specification: user stories with acceptance criteria against named actors, the integration points each one depends on, and diagrams of the flows that needed them. A system architecture with its structural decision argued out. And complete UX/UI designs in place of wireframes.

The test we hold ourselves to is whether a team that was not in the room can pick it up and start implementing without coming back with questions.

How the engagement ran

005

Hand over

NDAX reviewed and approved each stage as we worked, from the analysis and hypotheses to the concept and architecture. By handover, the documentation matched the agreed direction and had all elements required for development.

NDAX brings a loyalty question

Two months was enough because the team brought both loyalty domain knowledge and engineering experience

Aetsoft had worked on enterprise loyalty systems since 2021, so we understood the economics of incentives and the technology behind a configurable loyalty programme. That let us spend the engagement on NDAX: finding the problem behind the brief, identifying the commercial levers across its products and defining the data layer, loyalty engine and architecture for its own systems.

What we specified

Three parts, in the order they depend on each other. The data layer that assembles the customer. The engine that acts on them. The architecture that keeps both usable as the business grows.

The unified data layer, and the 360 degree view

The unified data layer, and the 360 degree view

Every product publishes what its customers do into one shared layer, in a consistent form. Trades, OTC activity, learning progress, and whatever a future product emits. That layer holds the single customer record the business had been missing.

It matters beyond loyalty, and this was a large part of the argument for building it first:


  • Segmentation stops being per-tool. A segment describes a person, and no longer just their behaviour inside one product.
  • Machine learning becomes possible. Churn and propensity models need consistent behavioural history across the whole relationship, which is exactly what the layer produces and what per-product records cannot.
  • Personalisation has something to personalise against.
  • Product decisions get evidence. Which products pull customers towards each other, and which sit unopened, becomes a question with an answer.

The loyalty engine is the first system to read from the unified data layer. Once historical and near-real-time activity from every product is linked to one 360-degree customer view, the same data can support new AI and machine learning use cases. Historical records can train models, while new events can update churn and propensity scores, trigger next-best-action recommendations, refresh lifetime value estimates and flag unusual activity.

The 360-degree view can also show how activity in one product relates to use of another. It could reveal which education activity tends to precede a first trade, which active traders may be ready for staking or where valuable customers begin to disengage. Those insights can uncover new commercial levers and inform changes to existing products, new cross-product journeys or entirely new products.

The loyalty engine, assembled from four parts

The loyalty engine, assembled from four parts

Almost every loyalty programme in the exchange market is a feature. Somebody writes code saying a customer who trades this much gets that discount. It works, and it is why those programmes change about once a year: every change is a development request, so it queues behind everything else.

We specified something the business assembles, out of four parts it controls separately.


  • An event type is something a customer can do. It is held as configuration, so a new signal from any product enters without the system being rebuilt around it.
  • An earning rule decides which of those events qualify for a reward.
  • Earning conditions attach to a rule and combine with AND and OR. They cover transaction history, time windows and product-based conditions, so a reward can follow a pattern of behaviour and not a single action.
  • A reward rule decides what the customer actually receives.

Seven programme types were specified on those four parts, each a different composition of them:


  • Points-based, the familiar earn-and-spend balance.
  • Progress-points tiered, where accumulated points move a customer up a level.
  • Milestone tiered, where reaching a defined achievement does it instead.
  • Fixed benefit, a standing entitlement with no accrual at all.
  • Referral, with its own qualifying conditions on the invited customer.
  • Affiliate, carrying tier rules, performance statistics and payout logic.
  • Journey-based, where the order of events matters and the customer is walked through a sequence.

The tiered schemes most fintech businesses start with are one of the seven, and nothing like the whole shape of what is possible.

What that buys NDAX is not mainly a saving on development. It is speed and room to change its mind. A campaign can be built in a working week and switched off in an afternoon. A hypothesis about customer behaviour can be tested with a live programme, which is a great deal more informative than a slide. When the market moves, or a competitor changes its fee tiers, the response is a configuration change made by the people who noticed.

Two requirements exist purely to keep that safe once real customers hold real balances. Programmes and event types were specified with versioning, because a scheme already issuing rewards cannot be edited underneath the people holding balances in it. Events are locked per customer, so two arriving at once cannot both read a stale balance and both pay out.

The gamification work produced one decision we argued hard for. Every exchange in the study ran the same progress bar against deposits, and customers had long since learned what it wanted from them. We proposed a season-based pass instead, with a free and a premium track inside a reward hub shared across the products. Points earned anywhere count everywhere, which is what the portfolio argument looks like to a customer opening the app.

The architecture

The architecture, and the two queues every product connects through

If each product had its own link to the loyalty system, every new product would need another integration. A reward rule spanning several products could force changes in several systems at once.

We designed one event contract for the whole portfolio. Each product would publish customer actions to an event queue. The loyalty system would read those events, apply whichever earning and reward rules were active, and publish the result to a reward queue. The product concerned would pick up the reward event and apply it to the customer account.

Those same events are what assembles the unified data layer. One contract does two jobs: it tells the loyalty system what a customer did, and it builds the record everything else reads from.

That keeps the boundary simple. A product reports what happened in the agreed format, and does not need to hold or understand the loyalty rules. Because every product speaks the same contract, the loyalty system needs no product-specific code to work out what a customer has earned. The rules can still test which product an event came from.

A new product joins the same way, by publishing to one queue and subscribing to the other. It still has that integration to build, and it can call the loyalty system's APIs for programme, customer and marketplace data where the interface needs them. What it does not do is negotiate a bespoke arrangement with the loyalty system, and existing products are not rewired to accommodate it. The reward rules stay where they are. An existing customer also keeps the history attached to their profile when they start using it, so the new product launches with something to reward on day one.

Event processing stays private

Event processing stays private, and scales without the admin platform

The queues decide how products reach the loyalty system. A second decision touched how the loyalty system should be built.

We considered two options. One application could hold the admin platform, event ingestion and reward calculation together. Or each part could run as a separate service with its own datastore. The single application is quicker to build and cheaper to run at low volume.

We recommended separate services, because the three parts differ in exposure and in load. The admin platform needs a controlled interface for NDAX staff. Event ingestion and reward calculation need no public interface at all, so they can sit inside the private network, and they were expected to carry most of the processing. As event volume grew, NDAX could add capacity to those two without growing the admin platform alongside them.

In the architecture document Aetsoft set out the single-application option and its lower starting cost as well. Separate services add complexity early. In return they keep event processing private and let NDAX scale the busiest parts on their own.

Romb

What the work delivered
to NDAX's engineers

NDAX's engineering team received:

  • A market and competitor analysis across eleven exchange venues, with comparable practice from retail banking.
  • An analysis of the product portfolio, internal systems and available integrations.
  • Tested hypotheses on the behaviours and signals worth building around.
  • An approved business and gamification concept.
  • A product requirements document, setting out what the system was for and who it served.
  • A software requirements specification covering administration, the rules model, rewards, events, customers, reporting, integrations and the customer and affiliate experience, with acceptance criteria and integration points for each area.
  • A system architecture covering the unified data layer, the event contract between products and the loyalty system, and the infrastructure and deployment views.
  • Complete UX/UI designs for the admin platform and the customer-facing reward experience.

Business logic, requirements, user journeys and architecture, agreed and written up as one development-ready set. NDAX's engineering team took it from there, with the expensive questions already settled.

Frequently asked questions about loyalty programme

  • Is a consultant who rescopes the brief solving your problem or selling more work?

    Fair question, and the test is whether the rescope makes the original ask cheaper or dearer. Ours made it cheaper. A rewards programme built on fragmented records needs bespoke reconciliation for every rule. Built on one shared layer it needs none. NDAX bought the same programme by a shorter route, and kept the layer.

  • What is a 360 degree customer view, and why is it hard to build?

    It is one profile per customer, assembled from everything they do across every product, rather than a separate record in each system. It is hard because the same person appears differently in each source. An account on the exchange, a client record on the OTC desk, a learner in the education product, each with its own identifier, schema and update rhythm. Reconciling those is the work. Most projects underestimate it because each individual record looks correct.

  • Should a multi-product fintech build a loyalty platform or buy one?

    For a single-product business, buying is often right. The case for building starts when a scheme has to read behaviour from several products with different economics, or when the customer data has to serve more than loyalty. NDAX had both, plus products still to come. What a platform cannot supply is the shape of your own business.

If you are where NDAX was

Most companies in this position have a budget line for loyalty and nothing an engineering team could estimate against.

Tell us what behaviour you are trying to change and which products it has to work across. We will tell you what needs settling before anyone writes code, and what a short engagement to settle it would look like.

Our blockchain consulting practice runs the same pattern in a different domain. The Abu Dhabi government adoption framework is the version that stops a stage earlier, at deciding which proposals deserve a build at all.

Contact sales
Pic

NDAX loyalty
programme

Logo
Pic

Shared history for crop sensor data

Logo
Pic

Government blockchain adoption framework

Logo
Pic

Crypto broker infrastructure

Logo
Pic

Cryptography and Layer 1 protocol development

Logo
Pic

Reusable verification on a healthcare credentialing blockchain

Logo
Pic

Product engineering for StreamWolf

Logo
Pic

Kaltura live Cloud TV platform

Logo
Pic

EVM in a private BitShares fork

Logo
Pic

Multi-tier blockchain protocol

Logo
Pic

Securities
tokenization platform

Logo
Pic

Velocity Career
Labs

Logo
Pic

Engineering inside BitShares Core

Logo
Pic

Blockchain core development for an EVM layer 1

Logo
Pic

AI assistant for loyalty management

Logo
Pic

VPLedger: a layer 1 blockchain

Logo
Pic

Balancer AMM for a better token access

Logo
Pic

DEX aggregator

Logo
Pic

CEX-DEX hybrid crypto exchange

Logo
Pic

DEX for PSP

Logo
Pic

Performance monitoring solution for green energy

Logo
Pic

Blockchain Loyalty Platform

Logo
Pic

STO platform

Logo
Pic

Digital currency solution

Logo
Pic

Blockchain voting solution

Logo
Pic

Car eService book

Logo
Pic

DAO space

Logo
Pic

NFT marketplace for creators

Logo
Pic

Metaverse rooms sports

Logo
Pic

Metaverse rooms

Logo
Pic

FreeStyle NFT

Logo
Pic

Data provenance solution

Logo
Pic

DLT solution for smart logistics

Logo
Pic

Pipe trading platform

Logo
Pic

Tea exchange platform

Logo
Pic

genEOS

Logo
Pic

BitShareScan

Logo
Pic

Decentralized trading platform

Logo
Pic

DEX mobile wallet

Logo
All case studies