Overview figure situating proof assistants, unit tests and type systems.

What is Formal Verification and what it means for DAML

For the past three months, I got to experience (remote) life at Digital Asset, working alongside the amazing language team, and combining several passions of mine: functional programming languages, formal methods, state of the art blockchain technology and drinking coffee. In the context of this internship, I developed a formal verification tool for the DAML language. So let me now take this opportunity to answer one of the most common questions regarding DAML: “Does DAML support formal verification?” In short: Yes, it does! Though maybe not in the way you might expect, coming from other tools or languages…

What is Formal Verification?

DAML proof assistants, unit tests and type systems
Overview figure situating proof assistants, unit tests and type systems

Ensuring that programs are bug-free and behave according to their specification, is a central topic in computer science. In its most basic form, the programmer manually writes down a number of test cases (unit tests) to verify. Using tools like QuickCheck, this process can be largely automated, by defining a number of properties and generating values to test against automatically. However, while these approaches are great for finding bugs, neither approach can guarantee their absence.

This is where formal verification methods come in. Formal verification is commonly associated with theorem provers like Agda, Coq or Isabelle. While these proof assistants are all amazingly expressive, they unfortunately come at the expense of complexity, requiring extensive user interaction to guide the theorem prover. Type systems provide a more lightweight approach to formal verification. While being significantly less powerful than theorem provers, type systems require a much smaller time investment, and can easily be extended for extra features or additional guarantees: e.g. dependent types, linear types, refinement types (Liquid Haskell), etc. Finally, symbolic execution operates by tracking each possible path through the code, and analyzing the operations of functions on their inputs. It’s more automated than proof assistants, while providing guarantees that are hard to express using type systems.

Agda vs Coq vs Isabelle formal verification.
Agda vs Coq vs Isabelle formal verification.

Formal Verification in DAML

Formal verification is an undeniably valuable tool, which is especially true for applications running on distributed ledgers, particularly in the realm of finance. However, the time and complexity cost of using off-the-shelf theorem provers is often just too high a cost to bear for most applications. Furthermore, proving properties about DAML programs would require an additional, and error-prone, translation step. For this reason, we are currently developing a static analysis tool (based on symbolic execution) for the DAML language, requiring zero user interaction, while operating nearly instantaneously and still being sufficiently expressive for important common use cases. 

In order to achieve this feat, we laid out a very specific blueprint for the properties that the static analysis tool can prove: “Does choice X always preserve the total amount of field Y?” Although this might seem very restrictive, in practice it covers one of the most important questions for blockchain formal verification: “Could this smart contract model ever burn money or create money out of thin air?”

How the demo works

Please note that this static analysis tool is still a work in progress, and that the example below might not be representative of the final version. Despite that, let’s have a look at an example! We’ll write a simple Account template, along with a transfer choice to make a deposit from one account to another. Note that if someone tries to transfer more than they own, the choice should just do nothing.

It is clear that making a transfer between two accounts, is expected to preserve the total amount of funds. We thus added an annotation to our code, making our intentions explicit. The IDE can now spin up the static analysis tool, which analyses all possible paths throughout the choice. After passing these results to an SMT solver, the IDE presents us with an error message:

The static analysis tool is warning us that Account_Transfer does not actually satisfy our annotation. More specifically, it turns out that our code produces money out of thin air, by creating more funds than its archives. And indeed, we seem to have forgotten to archive the contract we are exercising the choice on via archive self. Adding this line to the definition of Account_Transfer, greets us with the much more friendly message:

What is the Future of Formal Verification in DAML?

It is important to emphasize that formal verification for DAML is still a work in progress. However, the static analysis is showing great potential, and might find its way to IDE’s near you in the near future! If you’re interested in trying out the prototype for yourself, have a look at the GitHub page for additional information.

We are exploring more ideas for how we can apply this tool in other contexts and verify even more properties of DAML programs, such as statically checking DAML’s authorization rules.

DAML has also a new learn section where you can begin to code online or try DABL here:

Learn DAML online

Formal Verification FAQ

Check those quick F&Q at the bottom of this DAML blog post
Check those quick F&Q at the bottom of this DAML blog post

What is formal verification in software engineering?

Formal verification means proving that programs behave correctly according to their specification, using formal methods.

What are the most common formal verification programming languages?

While formal verification is usually associated with theorem provers (the most common of which are Agda and Coq), languages with strong type systems (like Haskell) also provide a form of formal verification.

What is symbolic execution?

Symbolic execution is a kind of formal verification, analysing a program by investigating all possible paths (branches) throughout the code, in function of their inputs.

What is the difference between formal verification and functional verification?

Functional verification tries to answer the question whether the program behaves as expected. Formal verification provides a way of answering this question, specifically using formal methods.

Are there any good formal verification books?

The Software Foundations series provides a great introduction to most of the topics handled in this post.

What is the difference between eager and lazy evaluation?

Eager, or strict, languages evaluate expressions as soon as they appear in the code. Lazy languages, on the other hand, delay evaluation until the values are actually needed. This avoids needless work when the values are never used, but might result in harder to predict performance.

What does it mean for a language to be purely functional?

These languages force a functional style of programming, based on mathematical functions, and avoiding side effects.

What are side effects in programming languages?

A program has side effects if it has any other effects, besides returning an outcome to the user. Examples include modifying state, performing I/O operations, reading the system clock, etc.

This week in “How to Start a Startup,” @DigitalAsset’s Eric Saraniecki talks with entrepreneurs about making their companies’ first hires.

How to Start a Startup: First Employees

Welcome to “How to Start a Startup,” a short series aimed at giving aspiring entrepreneurs a range of views about starting a new team, product, or initiative.

This week, our panel of founders will discuss what goes into making first hires. 

This week in “How to Start a Startup,” @DigitalAsset’s Eric Saraniecki talks with entrepreneurs about making their companies’ first hires.
This week in “How to Start a Startup,” @DigitalAsset’s Eric Saraniecki talks with entrepreneurs about making their companies’ first hires.

Michael Shaulov, CEO and Co-founder of Fireblocks:

There’s a fairly limited group of people who are willing to take the risk of joining as the first, second or third employee

When you and your co-founders decided how you want to run the company, did you insist the first people you hire fit that corporate culture or were you willing to flex a little bit more to fill critical gaps?

I’d say 80% of your first employees will be critical to your company for a long time. So I think it is important to make sure that they’re qualified and fit the culture.

This is a point when the co-founders are already helping each other. When we interview people, we all see different aspects of personality. For me, I really like top performance, and I would say I’m more flexible on the cultural stuff. It’s usually easy for me to get along with a different type of personality. 

One of our other co-founders is very obsessed with personality — that someone understands guidelines and isn’t a Dennis Rodman type. You can have only one Dennis Rodman in the team, and usually a company has its own Dennis Rodman. 

But the reality is that I think those things are important, and what really helps us is the combination of the co-founders, we are able to filter through those properties.

How do you attract the right level of talent when you’re so young as a company?

It’s really hard. When we were first hiring for Fireblocks, it was really, really hard for us to get the first couple of employees in terms of just finding superstars that are culturally fit and willing to bet on a new company.

There’s quite a large group who are comfortable joining a company that already has five or 10 employees. It’s like a sweet spot where people are like, “Oh, it’s early. I’m joining as one of the first employees,” but to me, they’re de-risked. They’re not walking into an empty office. There’s a fairly limited group of people who are willing to take the risk of joining as the first, second or third employee.

It’s very scary. You need to drop everything to join this startup that’s barely funded. They don’t have a product, they don’t have customers. There’s nothing. It’s basically like starting your own company, but without all the benefits.

Had you already raised some money when you hired your first employee?

Yeah. We were also three co-founders who had the benefit of being second-timers. 

So did you pay your first employees a market rate since you had already some funding, or did you do some sort of staggered compensation scheme?

First employees usually take a much higher equity stake. I think it’s reasonable to ask them to take a salary that they can live on — comfortably pay their rent and their kids’ education. And just that.

That’s what you have funding for. You don’t want the employees or the founders to be stressed from their economic day to day. You don’t want them to come to work and think about how they’re going to pay something. But on the flip side, it’s not that they’re going to get rich on their salary.

So when you started hiring, was it all engineering? Did you hire a salesperson? What did you think about in terms of the shape of the team?

For the first five months, we only hired engineers because we had to build the product. 

I think it’s usually a good thing if one of the founders is able to close the first three, four, five deals if he has the skills and experience to do it. Once we had our first two or three customers, that’s essentially when we made our first sales and marketing hires.

Having said that, I think it really depends on the founders. If the founders are highly technical and don’t have a lot of commercial experience, it makes a lot of sense to hire a savvy sales guy who can close the first couple of deals and have the conversations with the customers.

I’m only experienced in B2B. I assume B2C is a bit different. Maybe you do need marketeers at the very early stage of the process because you actually tried to validate some thesis around your ability to reach a big market fairly quickly.

So I don’t think that there are clear formulas for that, but I do think that you need to hire strategically.


Ben Milne, Founder and Chairman of Dwolla Inc:

And in my first company, I hired out of the customer pool, so people who were buying the products

Can you remember the first three people you hired? Are they still in the company? 

I don’t know if the first two or three or even four people who were hired at Dwolla are still there, but there are people that were in the first-20 cohort who are still there, and I think continue to have really successful careers. Once they get over that one- or two-year mark, most people are really invested. 

Something that’s exciting for me is the number of people who have gone on to be leaders in other businesses, or are now running accelerators or building their own startups. That certainly gives me a lot of pride in a way I did not expect.

And in my first company, I hired out of the customer pool, so people who were buying the products. I just said, “Look, I’m hiring, I’m looking to hire,” and sent it out in a newsletter. I got applications from clients, which in that business was a really great strategy because the people ended up working in the company really loved the product and were really, really intense users of it.

Why did you decide to hire a local team instead of doing something more distributed? 

It was probably a benefit of ignorance. I didn’t know! What I knew is that if I was in the same room with people, we could get stuff done. But the concept of intentionally building our remote team was not a concept that I was thinking about deeply at the time. 

I think over time, Dwolla has continued to get better at building a very mobile infrastructure, so it really doesn’t matter where people are. Early days, it’s just a question of where the people are that are working on it with you, I think. And I just happened to get lucky initially, and then I found some of those people in Iowa, in the Midwest, generally speaking. And when we took on our first actual round of funding, it helped solve a really complex regulatory issue for us and the investors were Des Moines based. And they did, I think, want us close to them as a kind of just in case. 

But also, we were leaning heavily on them for a number of processes and there was a meaningful amount of money moving through the system that us going rogue would have been really terrible. We never did. It’s one of the reasons we’re still here. But in the early days, somebody puts in some early money when they haven’t been doing software investing before, they’re managing against different types of risks.


Arti Arora Raman, founder and CEO of Titaniam:

One lesson learned from being a serial entrepreneur is the mistake of going too fast too early and running out of runway

How do you think about the team as it relates to your concept? Will you grow the team as your revenues and customers grow? Or will you preemptively build the team you need to hit your roadmap? 

For me, it’s going to be in two phases. Early on — because my demand hasn’t hit any kind of a hockey stick yet — I am hustling for every deal. So at this point, I’m definitely going by customer need in order to scale the team. 

I have my core team, and as I get more and more customers using it, I need a few more people to just keep up with the work. My plan is to grow that way. 

But once we have this established demand, and my customers start talking to other people, I will start anticipating that and grow a little bit in advance. One lesson learned from being a serial entrepreneur is the mistake of going too fast too early and running out of runway. But hopefully, I’ll have this wonderfully positive problem right where I’ll need to anticipate.

Daniel Chait, CEO and Co-founder of Greenhouse:

I think you’ve got to think of it like rocket boosters: You need the people to get you through to that next funding round or to that next stage of growth or whatever it is. Then they may or may not fit for the next round

I’m curious about, maybe, the first three to five people you’ve hired.

I don’t think we knew at the time, but the first hires we made were incredibly impactful. 

And so the first two: I hired a programmer, and he’s now our CTO. And he hired a guy that he had worked with, and he’s still with us as well. And they’ve really formed the backbone of the engineering and product team to this day. 

But at the time, we had some kind of handwritten outlines and notes of what we wanted to build, and I told my co-founder, “Jon, build it.” And as product manager, Jon was basically shipping kanban cards every day.

The engineers’ job was to pick them up off the board and just bang out the code as fast as they could. Mike and Mike basically just sat down and put headphones on, we fed them snacks, and they made the product. 

It was about six months of just working with them, but it turns out that they formed a core of the company culture, the way we design code, the way we build our organization, our values. 

Not every one of our first five or 10 employees lasted that long, but a lot of them did. The first sales reps I hired were here for years — one of them just left last year and had a long successful career. So those early hires can be really impactful if you get them right.

If you have a vision but don’t know exactly what you need yet, how do you filter for employees? Is it similar to picking a co-founder — someone you think is capable and is going to grow with you — or do you really target the skill set at that point?

We did a much more structured hiring approach. We had the index-card version, so we wrote down what we were looking for and how we were going to test for it, and then we went out and sourced proactively and worked our networks and tried to find the people. 

Mike, our CTO, remembers this: We interviewed hard, and he passed with flying colors, and we hired him. But we thought we were hiring a programmer. If you asked me at the time, I probably would have said our programmers were going to last a year or two, and then the company was going to grow and change and need different things.

And I just got really fortunate that the programmer we hired ended up being a better CTO than a programmer — and he was a pretty good programmer.

As the company grew, he just kept being more capable at doing the leadership that we needed. Looking back, sitting down and just writing code 10 hours a day was not a very natural fit for him. He’d already led a team of 20 people at a big media company, so for him to step back and build the startup with his bare hands was a real effort. The lucky part for us was, by the time we got to the stage where we need leadership, he had it already cooking. 

So how does that translate into advice? I don’t know. We happened to get lucky. I think you’ve got to think of it like rocket boosters: You need the people to get you through to that next funding round or to that next stage of growth or whatever it is. Then they may or may not fit for the next round. 

As I’ve looked back over the last eight years, we have hired some incredible people along the way in every area of the business who were really right for the stage we are at. Then ultimately the company changed to such a degree that they weren’t the right fit for what we needed at the time, and either we or they had moved on.

So to me, that’s a very natural part of the startup ecosystem. We could not have gotten where we are without those people. They also then go on to have other things happen in their careers and in their educations. They may well be right for other companies at different stages. 

But for us, it’s like, “Wow, between 50 and 90 people, that person was it. Out of 100 people, they just weren’t the right thing anymore.” So we’ve gone through a bunch of that as a company and probably still will. I define a startup as a company that needs to change or die.

How do you think about compensation for those very early hires? Do you give them really large equity stakes or do you do it more incremental over time as they grow with the company and prove themselves? 

That’s why equity grants are so much higher at the earlier stage. Roughly speaking, you’re going to allocate more or less the same percentage of the company every time you raise a round. 

Say you take 7% of the company, and that goes to your first round of employees, before you raise your Series A. That might be 10 people. Then you raise your series A, now you’ve got another 7% of the company that you’re going to dilute and get that 7% of the people to the next group of people. But you just raised $8 million, that might be 50 people, and then you’re going to raise your next round and you might allocate another 7%, but that goes to the next 200 people. 

There’s a point at which your salary pay kind of equalizes to the market and your equity pay drops off as a relative piece, but that’s exactly why early employees get so many shares.

Do you feel that is fair to employees who join later? Do you ever have to justify it to later stage employees?

It’s definitely a crapshoot. So if you’re not prepared for that level of risk, then definitely don’t do it — and definitely don’t take it because you think the shares are going to be worth any money at all. 

Why does the 400th employee get 1,000 shares and the fourth employee get 100,000? Well, because when they started, it was a massive risk, but nobody joining Greenhouse today has to worry, “Is this company ever going to raise a Series A? Is this company going to ship a product or ever have a customer?”


Marwan Forzley, Co-founder and CEO of Veem:

“I think it’s a key requirement for the early set of people that join the company to have been in startups. Otherwise, it’ll be quite an adventure they may not be ready for”

Who are your critical first hires? 

You basically are looking to extend the core team that you set up. You’re looking for someone who is going to be in it for the long term with you — not exactly the same commitment as a co-founder, but up there. 

In terms of what you actually need — engineers or finance or compliance or whatever — it really is dependent on the key gaps in the business.

And how do you convince someone at that early a stage to join you in your idea?

Generally, you’ll look for someone who has been through startups before, so that they understand what they’re getting themselves into. I think it’s a key requirement for the early set of people that join the company to have been in startups. Otherwise, it’ll be quite an adventure they may not be ready for.

Identify the gaps and figure out exactly who can help you. You’re looking for someone who has been in startups, someone who wants to be in the thick of it with you. And then you’re looking for someone who is not necessarily deep into a single thing — someone more utilitarian who can function in different settings. They’re going to be doing everything from coding, to making coffee, to doing some paperwork, whatever. It’s going to be a multipurpose setting.

Every startup has to hire compliance and legal, so it’s not that it doesn’t exist. It’s just that it’s a longer search or a bigger search. But companies have been built, and there’s been the first compliance and the first engineer and the first lawyer. You just have to find them along the way.

Do you often go into your own network when you make these first hires? Or do you engage with the recruiting agencies?

Usually, the first batch of hires are people who we know from various settings because at that stage, it takes a lot of convincing about what you’re trying to do. You’re not ready to have a search for all that. Because at that stage it’s like they’re joining you more than they’re joining the idea.

And I guess it’s a form of commitment for you to convince your friends to do it, right?

It’s a commitment on both ends. I mean, you’re also taking a lot of risk as a new employee for a company that has not been defined yet. So, it’s important for both sides, and there’s work required to make sure you have the right set of folks that join you.

If you start to build the team before you start to get some funding, how do you think about compensation? It must be pretty tough to ask people to be very lean.

That’s why you have to have people that have done startups before, because that discussion starts to happen. And at that stage you may not have funding, so you want to make sure you’ve got people who are flexible. Obviously at that stage, you’re looking for people who are more interested in options and equity than cash, and that all gets factored into the discussion. It’s going to be a lot more material on equity than on cash. 

Nimrod Lehavi, Co-founder and CEO of Simplex:

“Someone may fit right in what you need right now, but you’re not sure they’re able to grow to the next phase — and that will f*** you up so badly in a few months”

So it feels almost like you hired your co-founders, right? You had a sense of exactly what you needed to round out the skills of the core group. When did you hire your first true employee?

It came pretty fast. As soon as we had the first term sheet signed, we signed up another developer. 

Hiring is a tricky business. You always hit and miss. Some of the people are obviously misses and sometimes it takes a long time to understand that you missed. We’re trying to make it work after we’ve made a decision, and many of the decisions are wrong. Someone may fit right in what you need right now, but you’re not sure they’re able to grow to the next phase — and that will f*** you up so badly in a few months. 

I don’t want to hire good people anymore. I want phenomenal people. Because it’s just tiring to re-explain things or redirect people. It sounds like such a cliché to hear myself saying that, but if you hire amazing people, you have an amazing company. 

It’s like all the management-school crap: A people bring A people, B people bring C people. So it’s always like that! If you let go just one bit because you want to make the quota and you need another developer just to finish a task… You need to kick him out six months later because he’s poisoning the culture or he’s just not that good. It’s so f***ing frustrating.

So do you have any of the first three or four people you hired, are they still on staff?

The first developer is still on staff. A bunch of the first 10 are still on staff.

At this point, do you have a play sheet of who you think you would hire first? 

I have an amazing COO, and I would definitely go to work just with him. He’s very operational and detail oriented, and I’m just this crazy-guy visionary. I can sell anything to anyone and just make shit happen. And then he needs to go and pick up the pieces, and make it actually work. He can look at a spreadsheet and dig into all the details without falling asleep twice or moving to do something else. So someone who compliments where you know you’d suck, I think is the most important one. 

And how do you think about scaling the team in the early days — back when you went from two to 20, and were just starting to structure the team?

I think that our Number 11 employee was HR, which I think was instrumental in creating the culture.

How did you compensate people early? Because I’m sure you want to just try to be super lean because you took in some funding, but it wasn’t a ton of money.

No, it was very little.

And you had a really tough grind ahead of you in terms of the amount of work to do. So did you hire people and say, “Your salary is this now and then later as we improve it’ll get better?” 

Yeah, exactly that. We pay market salary, and you come because you believe in what we do, you believe in the purpose. 

That’s how you get people really to sign up for what they do. They are engaged, they love the company, they really believe in what we do. 

I’m marketing fully convinced that crypto promises a literally better world.

What’s ahead

In the weeks ahead, we’ll explore these high-level topics: 

  • Startup Series 8: Life beyond the first few months

Each post in the series comprises a short set of questions about a specific topic. Our participants will offer their own views and we encourage you to add your voice to the discussion.

Do you have your own questions for Digital Asset’s panel of entrepreneurs? Please write to us at community@daml.com.

Digital Asset can remove engineering roadblocks for entrepreneurs. Contact us to learn how to build and deploy software with DAML, an open-source toolchain for building applications, and DABL, a scalable cloud environment for launching SaaS applications with a serverless experience.

DAML has also a new learn section where you can begin to code online or try DABL here:

Learn DAML online

Try DABL for free

Reading DAML Smart Contracts for Non-Programmers

How do you read a programming language? And what do we mean by read, is reading just the words on the page or the comprehension of what the program intends, or the ability to reason about whether or not the program does what it intends.

Reading DAML Smart Contracts for Non-Programmers
How do you read a programming language?

For most people they simply can’t reasonably read, comprehend, or reason about a program unless they spend a few months learning the programming language they’re trying to read. Even then programming is such a nuanced thing that programmers will often write tests just to ensure that the code they themselves wrote actually does what they think it does.

It stands to reason then that even an experienced programmer cannot be perfectly informed about what a program does or doesn’t do unless they not only read the code but read/write the tests for that code, and have a reasonably strong knowledge of the language they’re reading and writing. This limits the total amount of people who can validate any piece of code, and we regularly rely on others to make these assurances for us.

But no matter how hard we try our understanding of any program ultimately falls short of perfect. So there is no magic solution that will suddenly allow any non-programmer to read and comprehend any program. Rather it’s an improvement.

We shouldn’t need to depend solely on our faith in the provider of a service even if we’re not programmers or well versed in the language. DAML provides a benefit here by making many portions of a program highly explicit, especially the portion that governs agreement. In a standard general purpose programming language you can very easily agree to an action without knowing that you are, whereas in DAML you simply cannot.

This is best to demonstrate though so let’s take a look at a contract I wrote a while back, it’s my favorite.

Weighing in at just 10 lines of code we can read quite a lot of it with just a short explanation as to how DAML contracts create the assurances I mentioned. But once you understand the structure of this one contract you understand the structure of all DAML contracts.

Firstly we have a contract (we call it a template) named Beer, simple enough. Then indented under it we have a structured series of keywords (with, where, signatory, choice, controller). Here our contract is saying that the template Beer comes with a giver, and a recipient. At this point we may have some idea of what the contract does, but really what we have is knowledge of what the contract concerns.

What the contract does is covered under the where clause. Here, indented under the where clause, we have a keyword that says “signatory”. Much like a paper contract may have signatories that sign off on it, DAML (although not a legal contract) has a similar notion when it comes to executing a contract. Can you take a guess at who must sign the contract in order for it to be valid? 

So we have two signatories, giver and recipient, who were specified earlier under the with section of the contract. This tells us that, unless both parties sign this contract it won’t be a contract and won’t do anything.

Once the contract is signed both the giver and receiver can see that one owes a beer, and the other is owed a beer, respectively.

Now we can see that there is a choice on the contract called “Beer_Received” and it has the recipient as a controller. Can you guess who can and who cannot use the Beer_Received choice?

And now that we can see the recipient can exercise the Beer_Received choice we can see it does something under the do clause. Ultimately this is where our understanding would come to an end if we haven’t learned DAML. However we now know substantial portions of how this contract behaves, without any programming knowledge, and can make much more informed decisions about the programs we’re interacting with.

Interested in learning more? Try running a DAML program in your web browser:

Learn DAML online

How to Start a Startup: Early Funding

How to Start a Startup: Early Funding

Welcome to “How to Start a Startup,” a short series aimed at giving aspiring entrepreneurs a range of views about starting a new team, product, or initiative. 

This week, our panel of founders talks about their early rounds about funding. 


This week in “How to Start a Startup,” @DigitalAsset’s Eric Saraniecki talks with entrepreneurs about their early rounds of funding.
This week in “How to Start a Startup,” @DigitalAsset’s Eric Saraniecki talks with entrepreneurs about their early rounds of funding.

Michael Shaulov, CEO and Co-founder of Fireblocks:

If you’re a first-time entrepreneur, the best way is to get in touch with other entrepreneurs who are somewhat more successful and have them introduce you to their VCs or to their angel investors

Can you remember what it was like to try to raise money the first time? 

Michael Shaulov: In 2008, I was one of the co-founders of a company that failed to raise its seed round and it was a very painful experience. We wasted months having conversations with VCs and angel investors and we didn’t manage to raise anything. 

The second time, with Lacoon [Mobile Security], It was a faster process. I think it was more clear to investors that we were bringing our specific domain expertise to the table and the team was much more aligned with the problems we were looking to solve. So I think the story for the investors was more digestible. 

How did you get those first meetings? How did you get on a VC’s radar?

If you’re a first-time entrepreneur, the best way is to get in touch with other entrepreneurs who are somewhat more successful and have them introduce you to their VCs or to their angel investors. In my mind, it carries the most weight. 

We knew that there was basically a group of VCs that we wanted to talk with and we started the discussion. Most of those discussions were slow moving. There was one angel investor who was a living legend in the space of cybersecurity. His name is Shlomo Kramer. 

One of his friends told me, “If you want, I’ll pass him your executive summary, he will send it to Shlomo.” So we did that. Nothing. We didn’t hear anything back from them. And then I heard from a different friend of mine that he had a friend who was working for Shlomo, and I asked him to ask him. 

And then actually he got the executive summary. I was in Israel. He was in San Francisco. We had a call, and then he put me in touch with one of his business partners, Mickey Boodaei, who was the CEO of Trusteer. And we came in and presented to them, and the rest is history. I think they gave us a term sheet within a week. 

I think that’s probably the key, though: If you’re in a specialized space like blockchain, most Tier One VCs don’t have unique expertise in your space. They have a flow of tens or hundreds of really interesting deals. And the real question is, why should they bother? Why would they learn something that is potentially interesting but they aren’t familiar with it? On the flip side, you go to an investor who knows your space and you pitch him the idea, it probably will take him five seconds to decide if it’s interesting or nonsense. It’s very intuitive. 

Do you think there’s anything really critical to get right at the seed or the A round? 

We looked at both [equity and debt] options when we did the seed. At the end of the day, there isn’t a big difference between a note and an equity round at a reasonable valuation. When I ran the numbers, there was a difference, but it wasn’t fundamental. 

I do think that dilution is important. So you should be concerned about your dilution and you should probably figure out how not to give up too much of the company. Somewhere between the 20%, 25% is probably reasonable for a seed round. 

I don’t know. Maybe you can go to 30%, somewhere within that range — or maybe start with 20%, 25%, and then you can leave the round a bit open.

I don’t think it matters for the seed round, and I think it really doesn’t matter for the A round. But where things become somewhat interesting is around the B round. That’s where you run into issues if you didn’t structure it properly. 

If the previous rounds were too aggressive, then in the B round, Tier One institutional investors are not only sensitive about their ownership but about the ownership of the founders. If the founder is more substantially diluted, that it’s really scary for them because they’re afraid the founders will abandon the ship.


Ben Milne, Founder and Chairman of Dwolla Inc:

Eventually, you end up in front of somebody who wants to help you, which is sort of the entrepreneur superpower that only other entrepreneurs have

When did you first raise money for Dwolla? 

The first funding round that Dwolla did was a $250 thousand pre-pre-seed angel note. 

I put in $50 thousand, which was part of a way of trying to maintain credibility with the outside investors who put in the other $200 thousand. And the terms of it were, “This is what looks like might be fair based on reading Inc Magazine and finding this podcast.  … Maybe this is right.”

And thankfully one of the investors was also an attorney and said, “Yep, this actually is directionally pretty fair, and we’re in.” And that was kind of a group of friends who knew my parents, speaking frankly, and had sort of watched me grow up and watched the first company. The goal of our first rounds was a certain amount of money to acquire a license in Iowa. It had a bonding requirement. So basically, it was X amount of runway to add maybe one-and-a-half engineers to help and test out the product legally with the license. 

So it was mostly to buy us time to prove Dwolla out and then raise more cash to launch nationally and get the rest of the licenses. We ended up finding a way to get to market through a different license structure and act as an agent, which now is becoming much more common, but then wasn’t common. And we just ended up solving the problem differently with partners in Iowa.

So you were able to actually use more of that money towards building out your product instead of having to put it into the license?

Hypothetically speaking. But in reality, it just means we raised less capital. Instead of raising 10 million and using three of it for operations, we raised a million later on and used all of it for operations and got out into the market and then raised additional capital after that. But the capital we raised after that was a function of investor interest as opposed to an intentional fundraising.

So for your seed round, you went directly into your network of friends and family. And did you have to put the $50 thousand up to convince them? 

I think about the time that round came together or the original $250 thousand was about the time I was selling my first company. That was part of the conversation. And I wasn’t asked to put the money in, but I remember the feeling of, “I want to be in this with everybody. I want to show and I want to demonstrate that I’m real about this. And I want to really make this my focus and speak with my feet and speak with my money and take this seriously.” And that was my way of maybe internally proving to myself that I was going to do this. 

You take the seed round, you move it into getting your licensed MVP up and running. And then you reached out to VCs. Is that when you started really reaching out to the first round of venture capital? 

It wasn’t quite that clean. I was really trying to spend all day either pitching to clients to sign up and use the software or pitching to potential investors. And that meant anyone who said they might be an investor or knew investors. I’d never met any of those people. 

And you just keep running in circles and taking whatever introductions you can get. Eventually, you end up in front of somebody who wants to help you, which is sort of the entrepreneur superpower that only other entrepreneurs have. There’s this mentality of, “I’m going to help because I can.” And I got lucky and stepped into a group of entrepreneurs and bank CEOs who gave me free advice and introduced me to their friends.

Those introductions are like oxygen in the early days. And I found a pocket of really high-value introductions in Iowa, and then a pocket of high-value introductions through a conference called Big Omaha. That was really important to lots of us at the time and finding connections outside of the community, especially the people running the conference and their staff and introducing us to people outside of the community that were really deep in other startup communities.

It took a year or more to get that second million done, and I was fundraising almost full time. Probably 75%, 80% of the time, just lots and lots and lots of meetings and lots and lots and lots of nos and lots of offers to get penny stocks on the conversion from s****y investment bankers who would have an option to buy 90% of the company whenever they wanted. I got the worst term sheets in the world — even I knew they were a bad idea!

I was fortunate that when we did that early deal, we were given access to some of the legal and InfoSec resources inside our partners that we truthfully couldn’t afford yet. And over time, as we got more sophisticated and raised more capital, we were also able to get a lot more professional about our paperwork, which also needed to be redone when we did some later deals to clean things up. 

It’s interesting that you say that. I’ve spoken to others who are more cynical about it who say, “Pretty much the only thing you’re ever going to get a value out of an early investor is cash.”

They were raising VC from the wrong people! 

My view of investors is they are the only people who pay you to be on your team. The relationship we have with our clients and with our team is totally different than that. And most of the time, it becomes clear what investors really truly want to work on building a really great business versus who kind of wants to flip it and get their allocation, or is not willing to dive into some of the nuances of the company or of the product. And I’ve been fortunate to work with a lot of different investors that have dramatically improved my life and my outlook on life and the outlook for the company and their contributions have gone way beyond money.

I think my perspective would be, “Wait, you want to pay to be on the team? And you flew to Iowa to do a four-hour working session with me? You’re asking questions that are three layers deeper than what the guy running the $2 billion fund asked? How fast can I get you involved in this and when can you come back?” 

I think, at least when I’m talking to investors, I’m trying to talk to people that I think I would want to work with for the next five years.

In some cases it might turn into working with them for 10 years or even longer. It’s a long game across multiple opportunities that we’re all in the middle of. Don’t get me wrong, it doesn’t always work. But I can look back on every board member I’ve ever had and every individual I’ve worked with at every investor and found at least one point in time where they put themselves out there to help me.


Arti Arora Raman, founder and CEO of Titaniam:

This time, I wanted to wait a little bit. I wanted to make sure that that value is built out sufficiently so that we get the valuation we deserve

What was your mindset the first time you tried to raise money? What did you set out to do? And how did you get some of those very first meetings?

I viewed funding as a success point in itself, which I think a lot of first-time entrepreneurs do. It’s like your first point of validation. 

My co-founder and I tapped our networks. He was well-known, so we got in front of the line easily. And because we cared so much about getting to that milestone, we didn’t prioritize other things such as the evaluation we received, or how much more funding we thought we would need down the road. We didn’t do that. But that’s not a bad thing, either. I think that’s just your priorities at the time based on where you are in your entrepreneurial journey.

For me the first time it was just about getting funding, and we did it really fast. We got it in less than a week. 

Titanium is not funded. This time, I wanted to wait a little bit. I wanted to make sure that that value is built out sufficiently so that we get the valuation we deserve. 

Without revealing any specifics, when do you anticipate you’ll start to raise? Are you going to start to approach VCs through your network? Are you going to approach seed investors? How do you think that you’re going to go about doing that?

To that end, I have been “planting seeds” for a while. I built a lot of the details of my idea by talking to people. A number of them are from the venture community. So there’s a fair number of people who know our company exists while we haven’t asked them for money yet. 

And I’m weighing the advantages of seed or series A because we are further along than your average seed company. I think if we can get a little bit more customer traction, I might go for an A. 

But that’s a label. I think at the end of the day, it’s about how much money at what price and so for evaluation.

What are you aiming for? Are you optimizing for a valuation in this round, or will it be a dilution effect? Or some combination of the two?

Those are tightly correlated, right? I think the only way to boost that in our favor is to have a strong valuation. Then we could raise enough not to worry about raising money for a while and then build out the company. 

And because we’ve gotten good at bootstrapping this far, we think we can go to the point where we have a few customers — between two and five — that will stand up and validate the product and speak to potential investors and other customers. So that puts us in a much different position than we would have been had we gone with just our core algorithm or even the beginnings of our product. 

So that’s where I want to be. And I feel like I’m almost there. And once I’m there, I’m going to shoot for as high the money raised to valuation ratios as we can command.

Have you considered taking money from your customers, given that they’re early customers and they really bought into it or will you strictly go with VC money?

I’ve definitely considered it. If we can get to revenue that starts paying some of our bills, we’re going to see how far we can stretch that because we have customers in trial. So if we convert them, that definitely starts looking interesting for us. Because it’s security and there are definitely the lighthouse-type customers that other people follow — for example, in financial services, technology, and high tech. 


Daniel Chait, CEO and Co-founder of Greenhouse:

Ultimately, we had to write checks to the business to get it started, and I had to kind of BS my way into getting some angel money

What’s your advice on the earliest rounds of funding? 

My message on first funding is, it’s impossible! At least, it’s brutally hard. But if you’re willing to overlook the odds, you can do it.

I can’t tell you how many failures I’ve had raising money. When we started with Greenhouse, I kissed so many frogs. I had so many people said no, I tried so many hacks, and I basically had to fake it till I made it. Ultimately, we had to write checks to the business to get it started, and I had to kind of BS my way into getting some angel money.

Then once we were off to the races, it was a little bit easier. There was a period there when we were a super hot company and raising money. But that period ended, even as we grew and matured. 

Once you have numbers and less of a dream — as soon as you’ve got a real business — it gets really hard again, unless you’re one of these magical money businesses. 

It’s an insider’s club. It’s heavily tilted toward people who have already sold businesses and the venture-backed community. It’s incredibly biased. The numbers are stacked against you in so many different ways, it’s really demoralizing. 

If you’re not geared up for that on the way in, I think you might be discouraged and disappointed by how irrational and difficult the process really is.

If you have already raised venture capital and returned money to venture capitalists — or even not returned it! — you’re in the club. Raise $100 million and sell for $50 million? As long as you’ve been through that cycle, investors will tend to look at you as “fundable”.  If not, it’s waaay harder to break in.

Coming from a NY-based, non-VC backed business, entering the Sand Hill Road crowd I found myself in just a very different world. What I realized was I do have a lot of privilege and a lot of assets and a lot of ways into this club, but the key is you’ve got to get in. So I just looked at it very plainly, like okay, here’s what I have going for me. When I show up in the room until I open my mouth, I look like I’m part of the club – I’m a middle-age white guy. I have a technical background, so I can sort of sprinkle some of that in, I can sound like I’m part of the club. Then I literally joined an angel investment group and started doing some angel investing, which was a giant waste of time and money but it got me in the club.


Marwan Forzley, Co-founder and CEO of Veem:

I think people underestimate how hard it is to raise money, especially the first batch. And especially if it’s the first time you’re doing it

How do you think about a first funding round? How do you think about the size of it or the investor base — or how do you even start to get those first phone calls with people?

It varies by founder and by company, but I’ll give you my approach: Generally, I don’t raise money unless I have customers. You’re going to have to tough it out and build the first MVP on your own. So you have to factor in that calculus when you start. 

You may not be able to raise any money until you have some form of a product that customers are using and providing feedback about. And generally, when you do that, you want to make sure that the customers are a big reference point. They’re going to be in the sales process with you. 

I mean, you’re going to sell to them to get them on the platform, but they also are going to be a big reference point for investors. Investors want to understand, “Is there any verification for this idea?” 

To have a customer stand up and say, “Look, I believe in this. I will pay for it,” does 90% of the work. When a customer says, “This product solved my problem this way, and I’m willing to pay for it this much,” you have a very good chance of closing capital.

In the beginning, you’re probably doing all sorts of pricing incentivization to get someone to use your product. So do you have investors that ever push back and go, “Yeah, but that they’re only interested because of the price point?”

It’s about making sure you agree with the customer on the pain point you’re solving for — and communicating that to the investor. 

Giving an attractive price to your first set of customers is expected. I think it’s more important to articulate the pain that you’re solving for, and have a customer second that.

Can you remember the very first time you tried to raise money? How did you start?

A lot of it is talking to people who have gone through it before. Telling all of them, telling them what you were working on, telling them that you’re going to be raising capital and who do they know? Explain the idea, and find out if they’re comfortable making introductions. 

Generally at that stage, what matters is people referring you to other people. 

A couple of founders have characterized the system as a circle you’re either in or not. And if you’re not in it, there’s no entry point, referral or otherwise. You can get a meeting, but you won’t necessarily get their money. 

I don’t think that’s accurate. I think people underestimate how hard it is to raise money, especially the first batch. And especially if it’s the first time you’re doing it. 

They’ve read that this company raised $200 million, that company raised whatever. And so they think it’s that easy: “I just show up, I pitch and I get some money.”

Generally, if you haven’t done it before, you’re in for a shock. You’ll find out pretty quickly that you have to be tenacious, and you have to stay the course and stay pretty hard at it too until it actually generates capital. And it’s exhausting.

That’s where the disconnect is. It’s not so much that the system is rigged and it’s all a club where you can’t get access. I believe that it’s a question of expectation. 

I think the first of everything is difficult. But, I mean, it’s not like it’s not been done before. It’s just you have to stay the course and have persistence to get the first batch. And then it gets a lot easier — second time, third time, whatever — because you have some track record to work with. 

Do you think there’s any big mistake that someone could make in the earliest rounds the first time? Anything that they should really be aware of?

You want to make sure that the people that put money in are going to help you out. At that stage, generally, it’s people that know the space, know the industry, or have an inclination that there’s something here that you’re solving for that’s important. And you want to get help so don’t just take money because there’s money. Take money because somebody can help you think through things, build things, solve problems with you. That makes a big difference. 

Any tips on how to vet someone for their ability or willingness to do that?

You can find out what you’re dealing with from their interactions, the quality of questions, the knowledge of the industry, the way they’re approaching the topics at hand. You can tell whether they’re helpful, they have a point of view, and whether that point of view is additive or not. That all starts to be helpful in determining whether this party you’re talking to is going to help you out or not. 

But generally whoever writes the first check is someone who believes that you have solved something in industry that they’re familiar with. (I’m talking about the first real check, not necessarily your uncle or your mom!)


Nimrod Lehavi, Co-founder and CEO of Simplex:

“Someone told me once that business plans are like hotdogs; whoever makes them don’t eat them”

Tell us about the first seed round at Simplex. How did you think about how much you were going to raise, who you were going to raise from, or when you are going to raise? 

It was a horrible s*** show. We started off looking for a few hundred thousand, and then some small Israeli VC offered to do a million and a half, and then two million. And I had a couple of angels who wanted to put money in from the start. 

And the VC ended up not investing. They dragged their feet through the term sheet; it took them six weeks to sign the term sheet. The two weeks before closing, they said, “You know what? It’s not going to happen.” 

So then we signed with the two angel investors at a lower valuation with some penalties and a time bomb: If we don’t raise another amount by six months, they’d basically get double their equity. 

We almost ran out of money, and then we managed to get some money in two cycles from the Office of the Chief Scientist in Israel. 

In my next … whatever … I would either not raise funding at all, or I would raise from a really good VC who can follow up easily. No angel investors, no micro-VCs, nothing like that.

Ultimately, you need either the markets to completely believe you or the large investors to completely believe you. I’m totally not saying that those investors are better or smarter or understand the market better, but they can follow up and they’re less willing to fight you over their cut of a nonexistent cake than angel investors in smaller VCs. 

Their model is that 50% are going to completely get wiped out. Most will return the investment itself. So they’re fine with it. It’s in their model. It not like they’re trying to squeeze you out of another 5% as a penalty or some bulls*** like that. I mean, the amount of overhead going basically to waste because of small investors and angels is insane.

They’re trying to figure out what the angle is for them?

No. They bring zero value, and they take a lot of energy. A lot. I think it’s even worse with ones who believe they do bring value. No, because first of all, you trust them and you look up to them and you find out they don’t understand anything about anything you really need. Maybe some of them will somehow manage to give you some intro, but nobody’s going to do your work for you. 

I don’t believe in fairytales, just like I don’t believe in the fairytales of, I raised $20 million in funding with a PowerPoint. F*** you. Not going to happen. I can’t perceive it as something that actually happened.

So how deep into Simplex were you when you started to raise money? Did you already have your MVP built or defined? How deep into your delivery roadmap where you?

I didn’t even have my co-founders when I started speaking with people! I guess I was cocky. I was so certain I was going to get the proper team and the proper product. 

And it’s kind of an axiom that actual financial companies actually require licenses and stuff like that. You’ll need a lot of money because licenses cost a lot and legal costs a lot. So, it was clear that we need funding, and without funding it’s not going to get done. So we worked a few months without funding. But it was clear that we were going to. I mean, hadn’t we gotten any funding, we would have shut down. It’s not something that we could have run out of someone’s garage.

About a year. Basically, we estimated milestones so we could raise the next round. I was completely off by every estimation. In 2017, I was off by orders of magnitude, down instead of up: In 2017, I hit the numbers that I actually quoted in 2014, to everyone’s surprise. 

Someone told me once that business plans are like hotdogs; whoever makes them don’t eat them. So, not many could do their own business plans. We did some predictions about stuff. We were probably wrong about everything. We made some assumptions with regards to the growth of the market, as well, that really we were completely mistaken.

DAML has also a new learn section where you can begin to code online or try DABL here:

Learn DAML online

Try DABL for free

What’s ahead

In the weeks ahead, we’ll explore these high-level topics: 

  • Startup Series 7: Hiring first few employees
  • Startup Series 8: Life beyond the first few months

Each post in the series comprises a short set of questions about a specific topic. Our participants will offer their own views and we encourage you to add your voice to the discussion.

Do you have your own questions for Digital Asset’s panel of entrepreneurs? Please write to us at community@daml.com.

Digital Asset can remove engineering roadblocks for entrepreneurs. Contact us to learn how to build and deploy software with DAML, an open-source toolchain for building applications, and DABL, a scalable cloud environment for launching SaaS applications with a serverless experience.

transaction tree of CBDC

Why DAML is great to represent digital currency

CBDC modeling in a nutshell

Continuing our blog series on Central Bank Digital Currency (CBDC), in this post, we will highlight the main features of digital money and how they can be implemented with DAML smart contracts. We are also going to show some examples in the form of the actual DAML code.

Functionalities of CBDC

Let us consider what features digital cash should have. On the one hand, several requirements come from physical cash, such as:

  • The creation and destruction of money are controlled by the monetary authority only.
  • The authenticity of money can be verified – it is impossible to counterfeit.
  • Money is transferable.
  • Financial transactions are agreed upon by all participating parties.
  • Owners of money have privacy.

On the other hand, digital currencies can provide additional features on top of what we can do with physical cash. For example:

  • History of cash can be tracked.
  • The monetary authority can control ownership, e.g., blacklist/whitelist owners.
  • Safe transactions are possible without a trusted third party.
  • It is easy to test and implement complex business logic for various financial services.

Each feature can be selected for implementation or even all of them. Moreover, one may choose a limited implementation for some features to improve privacy further. For example, history can be tracked only by the Central Bank.

Technology selection

There are many technology stacks one can use to model such digital currency. A few examples are Solidity for Ethereum based ledgers, Chaincode for Fabric, and a subset of Kotlin for Corda ledgers. Looking at this list, you can already see a problem. You have to decide first which distributed ledger the solution is going to run on. The language and its feature set are going to be a result of that decision. 

An excellent alternative to this approach is modeling the use case with DAML. DAML was not only specifically designed to tackle the difficulties of building smart contracts, but it can also run on a plethora of underlying infrastructures. This allows you to focus on the use case first, and commit to an infrastructure selection only once the non-functional requirements are clear. Another of DAML’s strengths is the inclusion of business concepts such as agreements (DAML contracts), signatories (DAML signatories), privacy (DAML observers), rights (DAML controllers), and more. Combining this with the modern functional programming paradigm makes software development more efficient and less error-prone. Let’s see how these properties of DAML benefit the use case of CBDC. We will build a simplified DAML model in multiple steps, capturing some of the main features that CBDC should have.

Monetary Authority Controls the Volume of CBDC

DAML’s focus on capturing rights and making trust relationships transparent allows us to ensure that the Monetary Authority has the final say about the creation and destruction of CBDC. We achieve that by recording which party is the issuer of CBDC on the DAML contract that represents it. With this information, it is easy to verify whether one recognizes the issuer as the monetary authority.

Authenticity: impossibility to counterfeit

As discussed above, the issuer should be recorded on the DAML contract. But how can we ensure that the issuer has authorized the creation of the contract representing CBDC? In other words, is it impossible to impersonate the issuer? The answer is yes: each DAML contract has verifiable signatories

Traditionally, signatories are parties who need to sign a contract willingly for it to be binding. A signatory in DAML is similar, but they use digital signatures. For our example, this means that if the issuer is not only mentioned in the DAML Contract but is also declared as a signatory, it becomes impossible for any other party to create the contract that represents CBDC without the issuer’s consent.

A simplified DAML template capturing this would look something like this:

Transferability

Similarly to how physical cash can be transferred, digital cash needs to implement that capability as well. In DAML, we capture this right of the owner with a so-called choice. Extending the CBDCv1 model from before with the choice called SimplifiedTransfer results in the following:

The owner can only exercise this choice if they also say who the receiver should be. If they do that, two things happen atomically.

  1. The old contract gets archived, effectively marking it as inactive.
  2. The simplified transfer gets executed. In this case, it would result in the creation of a new CBDCv2 contract where the receiver is the rightful owner of that CBDC.

When we say atomically, we mean that either both of these things complete successfully or none of them if anything goes wrong. 

Let us show how this looks like with a quick example. Let’s assume that the Central Bank issued money and named Alice as the first owner.

statusissuerowneramountcurrency
active‘Central Bank’‘Alice’100USD

Then Alice exercises the choice to give the money to Bob. This action results in one archived and one active contract on the ledger:

statusissuerowneramountcurrency
archived‘Central Bank’‘Alice’100USD
active‘Central Bank’‘Bob’100USD

Consensual ownership in financial transactions

As we have modeled so far, the only signatory of CBDCv2 is the issuer (i.e., the central bank). The modeled currency completely lacks the consent of its owner. Two main implications follow. Firstly, the issuer can archive the contract unilaterally, effectively taking the money away from the owner. Secondly, money modeled in such a way can be given to someone without their consent. That consent is relevant because owning money usually comes with responsibilities (e.g., think of taxes or that owning physical counterfeit money is illegal).

To fix this, we add the actual owner to the list of signatories.

However, after this change, the issuer can not create this currency where the owner is an arbitrary party because they do not have their consent. To make this work, the issuer can issue the money and add itself as the owner. In the second step, they can propose to transfer it to another party. If that party accepts, then all authorizations have been collected, and the transfer can be settled.

Consensual transferability in financial transactions

We saw that the model CBDCv3 requires the consent of the receiving party before the transfer, but how do we ask for it?

You can think of a digital payment as a two-step process. The initiator first makes a proposal or a request to transfer to the recipient. Then the new owner can choose to accept the offer for the transaction to be executed.

Note that the choice Transfer consumes the CBDCv4 contract. This consumption means the contract can be used only for one transfer. This behavior prevents double-spending.

Configurable privacy

When paying in a shop with physical cash, the merchant won’t know the previous and subsequent holders of the bill. They will also not necessarily get to know the identity of the buyer. This level of privacy is an important feature that we would want to model as well. DAML enables modeling of such properties:

  • DAML visibility rules guarantee that the chain of owners is not disclosed to subsequent owners.
  • Sub-transaction privacy ensures that while complex operations can be built in a transactional fashion, parties only see the parts of the transaction In which they participate.
  • Parties can be promoted to be observers of a contract. 

Thanks to these properties, anonymous payments can be modeled easily. For CBDCv2, subtransaction privacy guarantees that the receiver does not learn the identity of the payer. This is because the only part of the transaction that is disclosed to the receiver is the one creating the CBDCv2 contract. The receiver does not learn the details of the old contract..

While paying with CBDCv2 is anonymous by design, this is not the case for CBDCv4. Due to the extra step of the payer requesting the transfer and the receiver accepting it, the receiver also sees the payer embedded in the TransferRequest. Is there a way to make payments anonymously using the same approach as CBDCv4? Let’s take the original CBDCv4 template and add a new choice called AnonymousTransfer:

The choice transfers the money from the owner to the receiver in two steps: first, it creates a TransferRequest towards the issuer and accepts it. The second step is creating a new TransferRequest from the issuer to the receiver. Although this is a two-step process, it is encapsulated in a transaction, which guarantees atomicity. The following diagram shows this in a transaction tree:

A transaction tree: the choice transfers the money from the owner to the receiver in two steps.
A transaction tree: the choice transfers the money from the owner to the receiver.

As explained above, the choice AnonymousTransfer creates a TransferRequest to the receiver in the final step. Sub-transaction privacy guarantees that this is the only step disclosed to the receiver, as highlighted in the diagram. The receiver can then accept the request in a new transaction. Note that the sender does not participate in this new transaction at all, so they cannot see the resulting contract either.

Unique features of digital currencies

Trackability by authority (audibility)

DAML naturally supports auditing and tracking transactions. The ledger can be seen as an immutable database. It stores the contracts (identified by their contract ids) and the history of each transaction. Immutability and distributedness also contribute significantly to the integrity of the database.

To further fine-tune trackability of the contracts, the observers of a DAML contract can also be customized to allow more transparency and visibility.

Closer control of ownership by authority

Authority has the option to control who can own money programmatically. For example, they can maintain blacklists or whitelists.

Transaction safety

Transactions can be grouped to form a more complex transaction. As mentioned in an earlier example, a DAML choice can carry out multiple money transfers in an atomic way. This is why we say it is one transaction. This feature is often leveraged in Delivery Versus Payment scenarios without a trusted third party.

Testability

As DAML is a programming language, it provides ways to reliably test a DAML model to verify the features mentioned above. For example:

Conclusion and outlook

As we have seen, digital money can add a large number of new features to the ones of conventional physical cash. DAML can easily be used to implement all of these features of digital money. The tools provided in the DAML SDK and techniques discussed in the documentation make it easy to write correct and testable code. The implementation is compact yet easy to read. DAML can be deployed on various infrastructures ranging from centralized databases to distributed ledgers. The next entry in this series will be covering the infrastructure side of the solution.

The complete source code, along with tests, can be downloaded from our GitHub repo.

DAML has also a new learn section where you can begin to code online:

Learn DAML online

About the authors

This blog post was written by Gabor Hosszu and Richard Kapolnai from Digital Asset.

daml meetup New York supple chain

WEBINAR: Solving Supply Chain’s Big Problems – Value Chain Visibility & Demand Matching

In this Webinar we showed how a combination of smart contracts DLT, AI, and digital is a great way to meet these supply chain challenges:

The agenda was:

1. Overview of the supply chain challenges

2. The problem of demand-supply matching

3. How we built the health supplies procurement app:

a) Zero to functioning business layer in 3 days

b) Creating a full stack app by building a mobile responsive front end

The speakers:

1. Rakesh Prasad, VP Digital, Innover

2. Arvind Rao, Solutions Architect, Innover

3. Levente Barczy, Client Engineer, Digital Asset

4. Manish Grover, Head of Channel & Solutions, Digital Asset

Building a healthcare supplies procurement app using DAML

How we built a distributed application for supply chain visibility using DAML in 4 weeks

A few weeks ago we set out to develop a healthcare supplies procurement app to meet the demands of the COVID-19 pandemic. Now that the app is ready I wanted to share our journey and some interesting takeaways we took away from the process. Many thanks to Manish Grover from Digital Asset for his business inputs and guidance.

Also, there will be a DAML meetup on June 17 talking about some of these challenges and how we are meeting them. Don’t forget to register here.

Why another app for health supplies procurement?

The challenge was not that the procurement processes did not exist, but that there was a need to accelerate the cycle and bring granular visibility into the value chain. In a scenario such as the COVID-19 pandemic, having multiple islands of procurement that don’t talk to each other is not enough. Instead, we need an ability for every player to review the demand and supply patterns and maximize their responsiveness to meet public health demands.

Given the sudden spike in demand, and the shortage of supplies, currently there is no easy way to get a bird’s eye view across hospital networks, buyer agents, and manufacturers of what was being procured, where it was being shipped, and also what supplies were available to be purchased.

Not to mention that as supply is ramped up in a short period of time, new manufacturers have to be onboarded, verified, and aligned with the shipping and standard operating processes that health institutions need to comply with.

In addition, supplies for healthcare need the stamp of approval from the FDA, and the fact that a bulk of these supplies would be sourced from countries like China created potential delays with receiving and customs processes as well.

So, we needed a way to get all these things tracked and visible under a single umbrella while preserving confidentiality, with integrations out to existing enterprise systems as needed. For example, a network buyer should be able to see new manufacturers, their products, and whether they have FDA approval. At the same time, we needed these confidentiality provisions to be customizable. How could we achieve this objective of creating a single source of truth while preserving confidentiality and privacy?

actors in the supply chain

Which technologies did we choose?

It was apparent that regular technologies would not be an optimal fit because we could not possibly develop, and deploy a multi-party system of this scale in a reasonable timeframe. The need for data segregation and confidentiality requirements would be far too complex to meet. Not to mention the cost of hosting the data for such an application while meeting data domicile requirements of the various legal entities. We did not want to end up in a place where we’d have to constantly troubleshoot, aggregate and reconcile data from multiple databases and systems.

To meet the data confidentiality requirements by the various players in the supply chain, it would be an uphill battle to try and use traditional web technology architectures. So we decided that smart contracts and DLT would be a good candidate to base this architecture on. That way we could achieve the features and agility needed, while also integrating any existing legacy technologies with this foundation being built.

Given that we did not yet know which ledger we would choose to deploy on, we decided to build this application using DAML. That’s because DAML is fully portable across ledgers (so we could build now without tight dependence on the target ledger). DAML also allows interoperability across different blockchains so we could then integrate any complementary deployments if needed.

Further, to minimize the complexity of prototype development, we decided to host the initial version of the DAML app on project:DABL, a fully managed environment for DAML applications. That would allow us to do away with infrastructure management, authentication, performance and other non-value added considerations at this stage of the project. As outlined in this post comparing DAML & Kotlin, we would use DAML for the smart contracts layer, and use the event based automation framework of DAML ledgers (including project:DABL)  to communicate using APIs with 3rd party systems such as shippers etc.

This entire process was modeled and deployed to project:DABL using DAML within a few short days! It was a fully functional application and provided strong confidentiality and disclosure guarantees out of the box – e.g. one seller may not be able to see quotes from another seller etc. Not having to specifically program for these requirements was a big benefit of using DAML. Interested readers can read more about that here (DAML ledger model). Imagine building the entire backend of such a business process in 3 days. It’s a testament to how powerful DAML is. 

For example, here’s a screenshot of what the quoting process in DAML looks like:

DAML model with Contracts, Parties and Actions
DAML model with contracts, parties and actions

At this point, the app lacked the registration and onboarding of multiple parties, their authentication, and other common UX features. It was not very practical to use. We thus set out to create a web based, mobile responsive front end to allow for that functionality. Creating this front end turned out to be a more challenging experience and took us several weeks to get right. Even though an open source DAML UI template in React is available to use from the DAML team, that template was too simplistic to build a practical enterprise application without major customizations. e.g.  In order to create a Request for Quote, the buyer would need a list of available products and sellers too. However, given that the DAML ledger exposes easy to REST APIs for this purpose, our decision to use DAML did shave many months of development time. 

Buyer View app with DAML
Buyer View app with DAML

The end to end business process – and the new discovery

For this app to be practical, we needed to model the business process right from onboarding hospitals, manufacturers, cargo providers (international shippers), domestic shippers for last mile shipping, buyers and their various buyers agents across the globe. The processes would include making inventory available for procurement, requesting and receiving quotes, placing purchase orders, and then tracking the shipments all the way through FDA and customs to the hospital where the supplies were needed.

A representative process covered by the DAML application

A representative process covered by the DAML application
A representative process covered by the DAML application

While we programmed the entire business process using DAML in a few days, and built a fully functioning application within a few weeks, I’d like to bring up the bigger supply chain challenge we discovered. That problem is of matching demand with supply. It became obvious that with rapidly changing demand patterns, we need a way to route inventory in a much more agile way than we are used to. 

There are a variety of demand sensing technologies in use today. What if we could integrate real time analytics with the DLT app we built?

  1. That would allow a shipment to be routed in real time to where it is needed most at any time, avoiding hospitals and warehouses the costs of holding surplus inventory while also serving demand well.
  2. In addition, by linking hospital inventory systems with the DLT foundation, we could now feed information in real time instead of having to resort to expensive prediction capabilities about when the inventory might be used up.
  3. Inventory itself is a function of demand patterns. By linking innovations in other areas (e.g. Covid-19 testing data aggregation), we could automate the prediction of inventory status by taking those stimuli into account. That would be far more accurate than analyzing post-facto patterns of inventory change.
  4. Finally, we could expose all this data via a Conversational, AI driven business insights generation solution that can provide end to end visibility into the entire supply chain.

Summary

Our belief is that some of the key challenges with the supply chain arise from a lack of visibility (islands of data) and the inability to effectively include demand patterns in the manufacturing and distribution processes. There is a lot of innovation underway in demand sensing and retailer-supplier collaboration so the future does look promising. Innover has also been pioneering the use of AI based analytics and various digital capabilities such as conversational agents to solve these problems for our clients.

With the use of DLT based architectures using DAML we hope to provide additional impetus to the resolution of these challenges. I’ll be on a DAML meetup on June 17 talking about some of these challenges and how we are meeting them. Don’t forget to register here:

Register for the webinar

Release of DAML SDK 1.2.0

DAML SDK 1.2.0 has been released 11th June 2020. You can install it using

daml install latest

This is a purely additive upgrade which comes with some minor new features and bug fixes. Upgrading should not require any intervention.

Summary

  • Module prefixes can now be stored in daml.yaml. This means that you can use multiple versions of libraries in the same project by specifying them in daml.yaml instead of with the --package command line flag.
  • A new flag, --max-lf-value-translation-cache-entries, allows you to set a number of events for which DAML-LF values will be cached. This can help reduce latency when serving transactions.

What’s New

Module Prefixes

Background

When upgrading a package using a DAML upgrade workflow, one has to import both the old and new version of the package as dependencies. If both the package and module names are the same, this used to require setting compiler flags. The new Module Prefixes feature gives an easier means of disambiguating the packages and modules.

Specific Changes

The compiler picks up a new block module-prefixes specified in daml.yaml. module-prefixes takes entries of the form package: Prefix, and modules from the package are then accessible using that prefix. For example, the below makes module X from foo-1.0.0 available as Foo1.X, and X from foo-2.0.0 as Foo2.X.

module-prefixes:
  foo-1.0.0: Foo1
  foo-2.0.0: Foo2

Refer to the documentation for detailed information.

Impact and Migration

This is a purely additive feature, so no migration is necessary. If your project uses the old --package compiler flag to disambiguate packages, you can switch to this simpler method.

Minor Improvements

  • The Sandbox’s --max-lf-value-translation-cache-entries option allows you to set a number of events for which DAML-LF values are cached. This can reduce latency in serving transactions.
  • daml damlc inspect-dar now has a --json flag to produce machine-readable output. See the documentation for more information.
  • The Scala bindings have gained a method, LedgerClient#close, which will shut down the channel and await termination. This is optional; the channel will still be shut down on JVM exit if this method is not called.
  • Record dot syntax like rec.field1.field2 is now handled in expressions entered into the REPL.
  • daml trigger, daml script and daml repl now all support the --max-inbound-message-size command line flag, which configures the maximum size of transactions that can be handled.
  • The createAndExerciseCmd command has been added to DAML Triggers.

Security and Bugfixes

  • Dependencies have been upgraded to newer versions to avoid exposure to reported security vulnerabilities.
    • Upgrade jackson version to 2.11.0 from 2.9.9.3
    • Upgrade io.grpc:grpc-xxxxx and io.netty:netty-xxx version to latest
    • Upgrade protobuf and protobuf-java to 3.11.0
  • A Sandbox Classic migration issue when used with postgres has been fixed. See #6017
  • A bug where large multi-command transactions would cause a stack overflow in DAML Script was fixed.
  • The Standard Library’s DA.Text.splitOn function will now correctly handle the case where the separator appears at the end but should not be matched, as in splitOn "aa" "aaa" == ["", "a"]. See #5786 for more details.
  • The DAML linter, dlint, has been improved by removing some Haskell-based rules not currently applicable to DAML and by changing some function references.

Ledger Integration Kit

  • The Ledger API Server emits new metrics for the LF Value Cache. If the --max-state-value-cache-size is greater than zero, the following additional metrics will be recorded under the daml.kvutils.submission.validator.state_value_cache namespace: 
    • hits
    • misses
    • load_successes
    • load_failures
    • load_total_time
    • evictions
    • Evicted_weight
  • Added new Ledger API Server metrics for daml.index.db.*.translation to measure the time spent translating to and from the serialized DAML-LF values when fetched from the participant index.
  • Added new Ledger API Server metrics for daml.index.db.*.deserialization to measure the duration of the translation of the serialized DAML-LF values when fetched from the participant index.
  • The Ledger API Test Tool has gained the TransactionSize performance benchmark test.

What’s Coming

Our priorities for the imminent future remain unchanged.

  • DAML Triggers currently need to be started one-by-one using the daml trigger command making them difficult to control dynamically at runtime. We are working on a solution to make them easier to use in practice.
  • We will work to complete the Websockets streaming part of the JSON API.
  • We will work to complete DAML REPL.
  • DAML will get a generic Map type as part of DAML-LF 1.9.
  • We will work to make the integration kit components used to build DAML Ledgers more performant.
  • We will continue to work on our release process and to tighten the interfaces between different components of DAML so that we can give clearer compatibility and long term support guarantees.

Announcing DAML SDK 1.2.0

DAML SDK 1.2.0 brings some minor feature improvements and many bug fixes to DAML.

In parallel to the SDK release we are happy to announce that DAML-on-Fabric has been upgraded and now supports DAML SDK versions 1.0.0 and newer.

We’ve also recently launched our forum at discuss.daml.com. It is chock-full of questions, technical discussions, news updates, and even a thread on our favorite mechanical keyboards. If you haven’t joined yet come check it out.

We are also adding many learning opportunities to our WebSDK, so if you haven’t tried it yet please do. It walks you through all the steps of building your first DAML project in minutes.

An animated gif showing an example of someone using the getting started guide in our online WebSDK

Release Candidate for DAML SDK 1.2.0

The preliminary release notes for DAML SDK 1.2.0. can be found here. A community open door session will be held Monday 8th June at 2.30pm-3.00pm CET / 8:30-9am EST on Zoom.

Highlights

  • Better handling of multiple library versions
  • Improved caching options for decreased latency when serving transactions

What’s Coming

Our priorities for the imminent future remain unchanged.

  • DAML Triggers currently need to be started one-by-one using the daml trigger command making them difficult to control dynamically at runtime. We are working on a solution to make them easier to use in practice.
  • We will work to complete the Websockets streaming part of the JSON API.
  • We will work to complete DAML REPL.
  • DAML will get a generic Map type as part of DAML-LF 1.9.
  • We will work to make the integration kit components used to build DAML Ledgers more performant.
  • We will continue to work on our release process and to tighten the interfaces between different components of DAML so that we can give clearer compatibility and long term support guarantees.

DAML has also a new learn section where you can begin to code online

Learn DAML online

How to Start a Startup: Building a Founding Team

Welcome to “How to Start a Startup,” a short series aimed at giving aspiring entrepreneurs a range of views about starting a new team, product, or initiative.

This week, our panel of founders will discuss how they formed a team of co-founders and how they maintain those relationships. 

Building a Founding Team blogThis week in “How to Start a Startup,” @DigitalAsset’s Eric Saraniecki talks with entrepreneurs about choosing co-founders and setting expectations for the relationship.


Michael Shaulov, CEO and Co-founder of Fireblocks:

“For me, I do need a co-founder. I like the fact that someone is balancing me and has the same level and the same stake in the company that I have, that we can sort of argue about ideas.” 

Do you need a co-founder? Is it critical that you find one or two?

History is full of great entrepreneurs who didn’t have a co-founder, while others had two or more. I think it really depends on personality. 

For me, I do need a co-founder. I like the fact that someone is balancing me and has the same level and the same stake in the company that I have, that we can sort of argue about ideas. In my previous company, we were two, so it was me and my CTO, Apad. And in Fireblocks, we are three. I think that three is better because you can actually break a tie. 

You can find very powerful executives who will feel a strong ownership of a specific domain. But at the end of the day, the power of the co-founder entrepreneur that overrides everyone else’s opinion. And even if you are the VP of Sales — if at some point you disagree with the founders but don’t have any co-stake in the company — at some point, you will give up. It’s like, “OK, f*** it. It’s their company.” If you’re a co-founder, then unlikely that you will give up that quickly.

It’s very personal and it’s very particular, in terms of the skill sets that each individual brings to the table. But I think that you should have someone who is fairly focused on the go-to-market. I’m sort of wearing that hat at Fireblocks. 

Finding co-founders is actually very difficult. I think that the amount of cases that I’ve seen that things went sideways within weeks, months, or within the first year, exceed potentially the cases where things actually were stable. Management, culture, and probably the way that decisions are made are probably the biggest reasons why relationships blow up in the first year or so.

How do you think about co-founders? Is the relationship for life, or until it’s time to move on? 

I hope that we will not reach a situation where one of us leaves or is let go. I’ve seen that happen in other companies I was in, and it’s a very painful process. Sometimes it’s necessary, sometimes there’s just no fit, so the question is how do we eliminate that from happening? 

If it actually happens, it usually tears out a huge chunk of equity in the company. People are always sorry about that fact. I’ve never heard someone that say, “Oh, yeah, that guy was my co-founder, and for the first year, it was great. But, you know … ” (Shrugs.) I’ve been giving him a third of the company for his one year of contribution, whereas I had to work for another 10 years after that! 

What issues did you address early on? What kind of culture, business model or exit goals did you discuss? 

When we were initially brainstorming Fireblocks, it was me and Idan, my CTO. And then we brought in Pavel as co-founder. That was because I wanted to create a balance between the go-to-market product and R&D. 

The dynamic was great in my previous company, but I always felt that the product element was not fully represented in the equation. When you are basically looking at the go-to-market, in many cases you want to optimize for quick wins that will generate immediate results. When you are focusing on R&D, you always want to overengineer things, you want to create stable and beautiful systems. And both of those things are not always aligned with the strategic path of the product, and it was important for me to have those incentives represented by someone who is very strong, very opinionated, and has the same stake in the company as everyone else.

How did you use that balance to build an initial roadmap for Fireblocks? 

I think I mentioned before that our product was born from a known customer problem. We started with a real, real basic strawman of an MVP. And we decided to take the whole iterative development to heart: What we did was maybe 25%, 30%, of where we are now. And this was six months ago. 

Since then, we’ve been basically showing that iterative development to some of these early customers, and a lot of times before they were trial customers, they were just individual advisors. The person that put their name to help us as opposed to their company. And they would take a look and say, “Yeah this is good. Show me what it looks like in this context. Let me see it with my data,” and that type of thing.


Ben Milne, Founder and Chairman of Dwolla Inc:

“I think where I went wrong was where a lot of us go wrong finding a co-founder or first team members: You end up hiring your friends”   

Did you have any co-founders when you started Dwolla, or people that you would have classified as co-founders?

I tried very hard. I eventually ended up about two years into the project trying to bring in a later stage co-founder, and it just didn’t work. 

It’s probably a function of not being able to sell the idea, but also not really knowing the right structures. Actually, there were two people I wanted to split the company. I tried this twice, offered them half the company to come on. One lost interest and just didn’t show up to meetings — with the bank and stuff like that. 

The other person to their credit said, “I don’t want half the company, but I do want to get paid hourly.” I was just funding that, I said, “OK, I want to make sure you get what you want.”

How would you look for a co-founder differently than you did? 

I think where I went wrong was where a lot of us go wrong finding a co-founder or first team members: You end up hiring your friends, people who like you, and you like them. They happen to have a little bit of extra time and have a complementary skill set and are interested in similar things, but they’re not a carbon copy of you.

The challenge is you end up hiring a lot of people who look and sound like you, as opposed to team members who might bring the most diverse set of opinions and experiences to the table to create the best product. So that experience and being aware of that would change my perspective and has changed how Dwolla specifically does hiring and recruiting and things like that. But it took me a long time to realize.


Arti Arora Raman, founder and CEO of Titaniam:

“You have a problem, you have a solution, but then you have to be excited enough about it to stick it out when it’s down” 

How did you decide on the shape of your co-founder team?

We have 11 people. Part of the team is full-time. The rest of them are either consulting or doing something else to support the time they spend on the company. We’re also doing some of that work in India, which makes it a little bit easier.

I’ve worked with half the team before, and the other half were brought in by the group together. But everybody that’s here is vetted and known to somebody else.

There’s good reason for that, considering the type of risks that we are asking these guys to take. There’s not a lot of people who would sign up for that without knowing the group. We didn’t have a policy, but we kind of self-selected that way.

What specifically do you look for in a co-founder?

You want to make sure that they have the passion. You have a problem, you have a solution, but then you have to be excited enough about it to stick it out when it’s down. I think for that same reason, you need to surround yourself with people that you can lean on a bit so you can motivate each other.


Daniel Chait, CEO and Co-founder of Greenhouse:

“You need to understand each other’s financial situations. You need to understand each other’s family situations. You need to understand each other’s tolerance for risk” 

How did you decide on the shape of your co-founder team?

I decided I can control two things: what I’m working on and who I’m working with. Everything else is kind of out of my control. 

With Greenhouse, John, he and I went to college together. So we were friends since back in the mid-’90s, and then when he moved back to New York in the mid-2000s. 

In every case, I’ve known the people for years.

Do you start with an idea for a startup, then find co-founders? Or do you work with co-founders to identify a winning idea? 

I think of it as co-founder first, then idea. I don’t know if it’s lifelong, but it’s definitely a decade. If you don’t think of it in terms of decades, you’re not thinking about it right. 

And if you’re not aligned on that level with your co-founders it will cause bad problems. You need to understand each other’s financial situations. You need to understand each other’s family situations. You need to understand each other’s tolerance for risk. You need to know each other on that level and in such a real way because if not, you’ll very quickly realize that you want or need different things out of the business and each other.

You’re much better off finding those when the stakes are lower and the possibilities are endless than once you’ve gone down a path where you’ve really got way fewer choices. It’s not to say that your situation in your life can’t change, because it can, but just that like in a marriage or in any other long-term relationship, those changes have to happen in concert with each other. There’s some give and take and there’s got to be a single vision there. 


Marwan Forzley, Co-founder and CEO of Veem:

“There are long-term commitments, and at the same time there needs to be an understanding that things are going to move many times”

How did you decide on the shape of your co-founder team?

My co-founder for Veem was someone I worked with for the first time, but I pulled from other startups I’ve worked with in the past. So when we first started, Veem was sort of a mix of people from different startups.

Picking co-founders, you find somebody who can complement you on what you don’t have. In the case of Veem, I’m more business, and my co-founder was quite technical. 

In other cases, it’s more like people that you have chemistry with. You have a joint belief in a product or an idea. That’s another form of finding founders. But you generally want someone to work with you that can fill gaps, especially in early stages, because so many things need to be done. You need people who can fill gaps really quickly.

How do you think about co-founders? Is the relationship for life, or until it’s time to move on? 

It’s a combination of both, actually. There are long-term commitments, and at the same time there needs to be an understanding that things are going to move many times. When things evolve so fast, where you start may not be of interest to either party over time. 

So you just have to be real about this: Do your best to work together for the long term. But things change a lot, and along the way it might not be that long term. So you need to have that discussion up front.

What do you need from those first discussions with co-founders? 

I think it depends on what stage you’re in when you really start and when you’re at that very, very first phase. A lot of it is all about getting first customers. I mean that’s the only call you actually should have. 

Everything else is irrelevant. Business models, exits, marketing, all that is irrelevant at that stage. All you need to do is get customers to take what you’ve built or what you’re building and try that out and tell you that, “I think you solved my problem.” And then assess the first thing. And the second thing is if you can get feedback from the customer on what are they willing to pay for it. 

Other than that, a lot of it is irrelevant. 


Nimrod Lehavi, Co-founder and CEO of Simplex:

“Aside from the fact that the company exists at all, the thing that I’m most proud of is the culture. It’s really an amazing culture”

How did you decide on the shape of your co-founder team?

I needed co-founders from PayPal who knew exactly how to handle transactions, and I just went and got them. 

I was persuasive. I had two guys there, exactly the two positions that I needed. One in the analytics side, one in the tech side, both of them worked there for six years. Exactly what we needed in order to construct it. And I just convinced the shit out of them.

I hadn’t met them before. Someone who worked at PayPal told me what he thinks I’ll need. What type of positions and I just hit them up. Israel is a small place and the tech ecosystem is small, so you can get connections to pretty much anyone. 

How do you think about co-founders? Is the relationship for life, or until it’s time to move on? 

I wanted something for the very long run. I keep saying it’s like world domination. I mean it, I’m not joking. It’s like it should grow to that. It sometimes gets on the nerves of others; certain board members for instance, don’t share the conviction. But even though at a certain time you become a minority shareholder, it’s still my company. I know where it’s going. People make fun of me saying that I live three years in the future, in where I perceive the company.

Did you guys sit down and have some early conversations about  roles, company culture, business model was going to be, or exit goals? How thorough were you at the very beginning?

Not at all! I think at the beginning, we mostly wanted to see if we’re getting along: If we like who we are and like each other, the company culture should work fine. It did, very well. Aside from the fact that the company exists at all, the thing that I’m most proud of is the culture. It’s really an amazing culture. And even now with everybody working from home, there are still like a bunch of silly Zoom calls, drinking together, cooking together, and doing yoga together. So it’s really working very well. 

What’s ahead

In the weeks ahead, we’ll explore these high-level topics: 

  • Early funding strategy
  • Hiring first few employees
  • Life beyond the first few months

Each post will comprise a short set of questions about a specific topic. Our participants will offer their own views and we encourage you to add your voice to the discussion. 

Do you have your own questions for Digital Asset’s panel of entrepreneurs? Please write to us at community@daml.com.

Digital Asset can remove engineering roadblocks for entrepreneurs. Contact us to learn how to build and deploy software with DAML, an open-source toolchain for building applications, and DABL, a scalable cloud environment for launching SaaS applications with a serverless experience.

DAML has also a new learn section where you can begin to code online or try DABL here:

Learn DAML online

Try DABL for free