►
Description
Polybase - A Web3 Native Database presented by Sid Gandhi Shaki at the FVM Dataverse Hackathon 2023.
A
A
Yeah
basically
I'm
gonna
hand
it
over
to
to
you
folks,
if
you
want
to
give
like
a
brief
introduction
to
yourself
and
and
what
you're
doing
and
yeah,
if
you
want
to
share
your
screen
along
the
bottom,
it's
about
the
fifth
icon
along
there's
a
picture
of
a
screen
there
either.
One
of
you
can
share
just
let
me
know
which
one
it
is
and
I'll
make
sure
it's
live
on
the
on
on
the
screen.
When
you,
when
you
do
it
so.
B
Cool
thanks
so
much
can
everyone
hear
me
everything
good.
B
Awesome
yeah
welcome
everyone.
I'm
super
excited
to
share
a
little
bit
about
what
we're
building
at
polybase
and
show
you
how
easy
it
is
to
build
web3
applications
on
top
of
it.
So
my
name
is
Sid
Gandhi
I'm,
the
co-founder
and
CEO
of
polybase.
We
started
almost
exactly
one
year
ago
the
company
was
incorporated
on
May
2nd,
which
was
yesterday
so
quick
anniversary.
B
And
in
that
one
year,
we've
done
a
lot
of
stuff.
We
raised
our
precede.
Last
year
we
launched
our
test
net.
We
have
over
200
projects
building
on
polybase.
Now
we're
super
excited
to
see
what
you
all
built,
I'll,
basically
go
over.
B
Our
mission
is
really
about
restoring
our
control
over
information
and
by
ours.
I
mean
both
like
users,
developers
and
corporations
and
anyone
that
produces
the
actual
data
that
is
used
in
our
world
today.
B
And
what
we're
very
aware
of
is
that
information,
collection
and
exploitation
basically
permeates
everything
that
we
do
these
days:
politics,
Commerce
businesses,
culture,
everything
is
kind
of
controlled
and
routed
through
these
data
pipelines,
where
people
don't
really
own
their
data,
they
don't
really
have
say
over
their
data
and
how
it's
used,
and
so
what's
the
solution
there,
it's
really
self-sovereign
data
and
the
ability
to
control
and
permission
data
in
a
way
that
makes
sense
in
the
way
that
gives
gives
power
to
the
people
that
actually
own
the
data
and
we're
excited
about
what
protocol
Labs
is
doing.
B
Obviously,
because
a
lot
of
that
mission
is
shared
by
protocol
Labs
as
well,
and
we're
super
excited
obviously
to
have
protocol
labs
and
assessment
in
polybase,
as
well
as
have
them
as
partners,
including
in
this
hackathon.
So
that's
kind
of
the
connection
there
and
then
kind
of
going
from
the
mission
to
what
we're
actually
building
our
vision
is
to
build
a
single
database
for
the
world
where
data
is
stored
in
developer
friendly
way.
B
That's
self-sovereign
has
features
like
end-to-end
encryption,
ZK
proofs,
wallet-based
authentication
to
really
create
what
we
call
the
database
for
web3
and
that's
kind
of
the
theme
and
that's
kind
of
what
we're
what
we're
solving
for
so
kind
of
like
talking
a
little
bit
about
the
company.
In
the
background
we
started
about
a
year
ago,
protocol
Labs
is
one
of
our
investors.
Six-Man
Ventures
is
another
investor.
B
Orange
Dow
is
another
investor
as
well
they're,
basically
helping
us
kind
of
create
the
ecosystem
and
and
find
all
these
great
use
cases
and
where
people
are
building
web
3
applications
that
need
the
kind
of
features
that
that
we're
building,
and
so,
if
you're,
coming
from
the
web
2
world
or,
if
you're,
coming
from
using
something
like
Firebase
or
postgres
or
mongodb.
What
we've
found
is
a
lot
of
those
use.
Cases
require
a
bunch
of
additional
services
to
be
built
on
top
things
like
wallet,
authentication
permissioning.
B
So
you
end
up
writing
some
kind
of
ACLS
or
functions
to
do
permissions.
If
you
want
to
publish
data
publicly
or
verify
it
publicly,
you
have
to
build
kind
of
the
systems.
On
top
of
that,
if
you
want
to
do
nft
or
token
based
authentication,
there's
a
whole
layer
there,
you
may
have
to
use
some
RPC
providers
and
some
apis
there
and
what
we
found
is
it's
actually
really
really
hard
as
a
developer,
to
integrate
all
these
different
Technologies.
Some
of
them
are
broken.
B
Sometimes
some
of
them
are
outdated
and
what
we
wanted
to
do
is
create
a
really
streamlined
experience
for
a
developer
coming
in
and
building
a
web3
app
where
it
takes
a
couple
clicks
to
spin
up
a
collection,
add
rows
to
the
collection
and
then
read
that
into
into
your
application,
and
so
we
kind
of
hide
all
the
complexity.
You
can
go
see
it
it's
a
lot
of
polybase
is
open
source.
Now
all
of
it
will
be
open
source
in
the
future,
but
we
kind
of
like
streamline
and
simplify
everything.
B
B
B
What
ends
up
happening
is
a
lot
of
our
customers
have
ended
up
in
the
past,
using
Firebase
or
postgres
as
their
database
and
kind
of
having
some
decentralization
plan.
Well,
that
plan
won't
go
anywhere
unless
they
actually
have
a
database,
that's
decentralized
to
move
to,
and
so
we
give
them
web
2
like
Speed
and
Performance
and
attributes,
but
with
decentralization
public
verifiability
we've
seen
people
store,
Dynamic,
nft
metadata,
so
for
games.
You
can
store
metadata.
That
updates
once
a
second.
Let's
say
you
want
to
update
based
on
XP
or
attacks
or
kills.
B
You
can
update
as
fast
as
you
want
in
polybase.
There's:
no
transactions,
there's
no
fee
gas
fees,
let's
just
just
as
fast
as
Firebase
we've
seen
people
start
to
move
over
things
in
defy
like
Dex
order
books.
So
if
you
think
about
an
order
book,
it's
a
list
of
bids
and
asks
can't
store
that
on
chain
and
and
also
have
it
performant
and
cheap.
B
You
have
on-channex
exchanges
and
they're
they're,
slow
and,
and
you
have
to
pay
gas
and
so
we're
kind
of
allowing
dexas
to
off-board
their
order
book
in
a
really
efficient
and
verifiable
way
and
there's
tons
of
other
things,
proof
of
reserves,
collaborative
oracles,
self-sovereign,
n10,
encrypted
applications,
and
things
like
that.
So
I'm
going
to
share
my
screen
now
and
kind
of
dive
into
some
of
the
cool
stuff.
We're
building.
B
B
So
you
have
tokens
and
payments,
and
then
you
have
things
like
file
storage,
so
filecoin
is
a
good
example
of
that
you
would
store
images,
videos,
you
know
other
kind
of
file
related
data,
but
in
terms
of
metadata
things
like
user
profiles
who
you're
following
and
things
like
that,
we
didn't
really
have
a
good
solution
until
polybase
came
along
and
and
solved
that
that
middle
tier
in
a
decentralized
and
performant
way.
B
And
it'll
bring
you
here.
You
can
kind
of
see
some
attributes
about
the
current,
the
current
network,
using
the
root
hash
number
of
nodes.
We
have
online
right
now,
number
of
collections
we've
created
and
some
other
links
here,
as
well
as
our
changelog
we're
going
to
log
in
here,
and
this
is
using
polybase
authentication
under
the
hood
I'm
signing
a
request
here
in
metamask
to
log
in.
B
As
I
log
in
there,
okay
great
that's
connected
and
then
I'm
signing
a
sign
in
message
again
here
we're
signed
in
now,
you
can
see
some
of
the
applications
that
I've
created.
I'll
show
you
how
easy
it
is
to
create
an
app
you
just
go
in
here.
You
can
name
your
app,
we'll
call
it
at
the
metadata.
Let's
say
we
don't
want
to
store
some
metadata,
About
Storage
deals.
B
We
can
create
the
app
you
get
presented
with
a
example
schema,
and
so
you
can
kind
of
we
get
some
documentation
here,
but
you
can
also
go
to
docs.bodybase.xyz
and
learn
more
about
this
language,
which
is
called
polylang.
It's
basically
JavaScript
with
a
couple
decorators
here.
You
can
also
view
once
you
add
data
and
rows
to
this
collection,
you'll
be
able
to
see
them
there
and
then
it's
really
simple
to
get
started.
Yarn,
install
polybase,
client
initialize
the
database,
and
now
you
can
read
and
write
using
JavaScript
or
typescript.
B
So
it's
really
that
simple,
there's
really
nothing
more.
The
developer
needs
to
do
in
order
to
get
started
so
I'll
leave
it
here
and
then
I'll
pass
it
on
to
Shockey
who's.
Going
to
walk
you
through
a
full
use
case,
building
a
decentralized
nft,
traded,
nft,
gated
chat
application.
So
it'll
give
you
some
other
attributes
of
what
we're
building
so
over
to
you.
Shockey
thank.
C
You,
sir,
thanks
for
taking
note
to
me.
C
At
where
is
the
screen
share
here?
The
the
top
Arrow
right.
A
If
you
look
along
the
bottom
there,
you
should
see
a
series
of
icons
and
it's
the
one,
two
three
four
five
sixth
icon
along
it's
a
picture
of
a
screen.
Okay,
it
says,
add
screenshot
there
you
go!
Thank
you!
Yes,
yeah!
It's
not
it's
not
as
obvious
icon,
yeah.
Thank.
C
You
cheers
cheers
okay
guys,
so
here's
the
here's,
the
dogs,
so
any
I
said
explained.
Polybase
Explorer
is
the
way
in
which
you
get
started,
while
creating
a
collection
and
so
for
the
time
purposes.
I've
already
created
the
collection
and
just
logging
in
I'll.
Explain
the
collection
and
I'll
explain
how
do
you
integrate
that
collection
with
your
front
end
right,
so
nft
chat,
app
I've
already
created
chat
app.
So
if
you
look
at
this,
this
is
the
collections
here.
Any
data
inside
of
polybase
lives
inside
of
collection.
C
You
can
imagine
collection,
that's
like
a
database
table
and
you
can
Define
fields
for
those
tables
and
Set
rules
and
permissioning
around
how
you
want
that
data
to
be
used
right.
So
first
thing,
I
have
four
collections
in
this.
In
this
overall
collection,
I've
defined
four
different
collections,
which
is
so
it's
an
nft,
get
a
chat
app
right.
So
we've
we've
defined
a
user
collection.
C
I'll
I'll
just
go
over
one
collection
so
that
you
know
how
to
define
that
and
I'll
explain
the
other
collection
so
first
is
use
the
collection
and
for
the
user
collection
and
just
creating
collection,
user
and
for
any
collection.
Id
is
a
mandatory
field
right
and
that
you
have
to
Define
ID
for
all
the
collections
and
for
the
user.
We
also
need
the
public
key.
We
need
to
know
who
is
signing
the
transaction
from
which
wallet.
C
So
we
need
to
get
the
public
key
and
I'm
defining
the
public
key
here
and
and
we
have
to
define
a
Constructor
function.
So
any
any
write,
any
write
request
that
happens
in
polybase
happens
through
the
Constructor
function
or
you
can
define
a
custom
function
but
I'll
get
to
that.
But
everything
happens
through
the
function.
C
So
I'll
just
write
a
Constructor
here
and
if
you
look
at
the,
if
you
kind
of
look
at
the
syntax,
it
looks
more
like
typescript
and
that
kind
of
intentional
we
wanted
to
give
a
easier
interface
for
the
developers
so
that
that
would
improve
the
experience
and
yeah
so
inside
of
the
Constructor
we'll
need
to
assign
the
ID
to
the
public
key
and
the
way
in
which
you
can
do
that
is
contracts
Dot,
Public
key,
which
would
return
us.
C
The
public
key
into
the
ID,
and
one
thing
you
have
to
remember
here-
is
always
use
the
semicolons
at
the
end
of
each
thing.
Each
life
and.
A
C
Also
would
Define
the
public
key
so
that
we
can
use
it
for
permissioning
stuffs
and
in
this
example,
so
the
IDE
is
a
string.
Id
is
in
the
string
format,
but
the
public
key
is
in
the
public
key
format.
So
we
just
converted
into
a
string
using
dot
two
hex
and
we
should
be
good
if
in
case
we
are
not
getting
the
ID.
We
just
have
to
throw
an
error.
The
public
key
just
have
to
throw
an
error
which
is
public
key.
Then,
given
error,
you
need
to
need
to
sign
the
transaction
right.
C
This
is
the
basic
collection
guys
and
I,
just
I
just
replicated
the
user
collection
I'm
taking
this
off
now.
C
C
C
Yes,
perfect
and
again
you
can
just
Define
the
Constructor
for
that
which
is
ID,
which
is
in
the
type
string
owner,
and
you
can
give
the
user-
and
this
is.
This
is
just
like
how
you
would
instantiate
a
class
in
typescript
right.
So
this
dot
ID
is
equal
to
ID,
that's
an
nft
collection,
and
then
you
come
to
the
chat
collection.
You
create
a
ID
which
is
string
and
create
a
name,
and
you
create
a
members
field
which
is
which
is
gated
through
the
nft.
C
It's
like
we,
we
don't
care
who
the
user
is.
We
just
care
if
he
holds
the
specific
nft
and
then
he
asks
he
has
access
to
the
chat
right
and
similar
way.
You
define
the
Constructor
for
that
under
that
and
finally,
we
have
a
collection
message
right,
which
is
which
is
again.
C
C
This
is
similar
to
solidity,
where
you
can
write
custom
functions
and
this
can
be
any
kind
of
code
inside
of
those
functions
right
so
I'm
just
add,
I've
just
written
a
simple
function,
which
is
to
add
member
inside
of
the
chat
and
I
just
gave
us
a
small
rule
which
states
that,
if
the
length
of
the
members
I
mean
the
number
of
people
in
the
chat
is
greater
than
five,
don't
allow
or
otherwise
just
push
the
member
into
the
chat
based
on
the
nft
they
hold
right.
C
So
that's
that
color
that
Rule
and
finally,
we've
set
the
collections.
We've
set
the
fields
everything
is
done
so
now
who
has
access
to
chat?
Who
has
access
to
message?
How
do
you
define
that
and
we
do
find
that
in
polybase,
using
directive
or
annotative
annotations
right?
So
in
the
chat?
So
in
the
message?
It's
it's
kind
of
a
hierarchy
right
who
has
access
to
a
particular
message?
What
we
do
is
we,
we
kind
of
like
delegate,
delegate
that
permission
level
to
the
chat
and
be
so.
C
Anyone
who
has
access
to
a
chat
has
access
to
the
message
we
again
kind
of
delegate
that
permissions
to
the
nft
owner
right,
the
nft
owner.
So
whoever
is
the
owner
of
that
nft
has
his
has
the
nft
and
if
he
has
the
nft,
he
has
access
to
the
chat
and
if
he
has
access
to
the
chat,
he
has
access
to
the
message.
So
that's
how
it
kind
of
works.
Hierarchically
and
we've
got
four
collections
here
and
I've
already
saved
it.
C
So
it's
it's
all
done,
but
if
you,
if
you're
saving
a
new
collection
as
it's
sure
it
will
ask
you
to
sign
a
request
and
once
you
sign
the
request,
this
collection
would
be
saved
and
your
SDK
code
would
be
here
which
we
can
just
have
it
here,
copy
it,
and
now
let's
go
to
a
terminal
and
the
way
in
which
you
can
install
our
SDK
is
yarn
and
sorry
guys,
Beyond
and
add
holiday,
base,
slash
client.
A
C
C
Slash
react
and
at
quality,
slash,
authentication
right,
so,
okay
at
polybase
class
client
is
to
interact
with
any
of
your
backend,
which
you've
got
any
of
your
clients
like
vanilla,
JavaScript
or
View,
and
react
is
just
to
you
know,
give
a
set
of
helpers,
which
we
can
use
inside
of
polybase
and
authentication
is
for
making
the
login
process
a
bit
wallets
and
login
process
easier,
I'm,
just
installing
all
of
those
and
I
also
have
the
code
ready.
So
this
is
basically.
C
This
is
basically
a
front-end
made
using
chakra
provider
and
it's
a
very
basic
front
end.
The
main
idea
here
is
to
show
you
how
to
integrate
polybiz
in
this
front
end
right.
So
the
first
thing
which
we'll
be
doing
is
I'll,
be
importing
the
authentication
that
we
just
a
little
importance
from
I
hope
this
code
screen
is
clear.
Matte
or
do
you
want
me
to
zoom
in
on
this
as
well.
A
If
you
go
in
a
little
bit,
yeah
I
mean
it's
not
too
bad,
but
if
you
go
in
a
little
bit,
that'll
be
helpful.
Yeah
yeah,
that's
good
yeah.
Thanks.
C
And
we'll
just
import
and
polybase
slash,
client,
okay,
that's
odd,
and
once
you
have
imported
the
Earth,
you
have
to
define
the
auth
path
equal
to
so
in
this
I've
got
a
sign
in
function
separately
for
this
I'm
going
to
Define
the
authentication
here
for
the
application,
so
I'm
going
to
give
a
I'm
going
to
saw
Define
a
result
in
which
I
will
be.
C
Sign
in
should
be
set
it's
as
simple
as
that
and
now
so
we
need
to
as
I
said
earlier,
we
need
to
find
a
way
in
which
we'll
get
the
public
key.
The
public
key
would
usually
be
in
this
result
when
you're
signing
in,
but
if
in
case
you're,
not
getting
the
public
key
through
that
you'll
have
to.
You
know,
find
a
way
to
do
that,
get
the
public
key
from
the
message
that
is
being
signed
so
I'm.
Just
writing
a
small
public
key.
C
And
give
any
message
here:
I'm
just
giving
login
with
chat,
which
is
already
given.
C
And
now
is
the
signature
and
from
the
signature
and
for
for
using
this
get
public
key.
We
have
another
Library
which
we
need
to
install.
That
would
be
yarn.
Add
at
polybase
slash
eat,
which
kind
of
makes
it
easier
to.
You
know
work
with
any
ethereum
related
signatures
that
we
get
from
the
metamask
and
wait.
C
The
key
with
the
signature
and
the
message-
and
this
is
how
you
get
the
public
key
and
you
just
put
it
inside-
of
the
sign
in
function
once
you
get
the
public
key.
C
Yeah,
that
should
be
good,
and
one
more
thing
is
once
we
have
done
this.
We
have
to
set
logged
in
as.
C
Cool
that's
done,
and
now
what
we
have
to
do
is
we
have
to
navigate
to
our
Explorer.
We
had
this
client
initiation
code
just
copy
this
code
and
paste
it
here.
C
C
C
So
check
if
the
the
way
in
which
you
can
check
is
you
can
check
the
record
and
you
can
check
the
public
key
because
that's
unique
to
any
user
and
once
dot
get
if
in
case
it's
there,
just
don't
create
a
new
user.
C
If
not,
we
can
create
a
new
user
which
can
be
done
through
repeat
of
connections,
name
of
the
collection
and
create
this
will
create
the
user
and
we're
not
passing
in
anything
inside,
because
if
you
look
at
the
code
collection
code
here,
we
don't
have
any
fields
which
we
have
defined
inside
the
Constructor
for
the
user.
So
we
don't
have
to.
C
You
know,
pass
anything,
but
if,
if
there
are
like
for
nfts,
we
have
passed
an
ID
and
an
owner,
so
we
have
to
pass
in
the
parameters
inside
of
the
create
array,
but
as
a
for
the
user,
you
don't
need
to
do
that
and
yeah.
So
that's
done
now.
We
have
to
add
so
there.
So
you
need
to
also
tell
polybase
how
you
want
to
sign
the
request
right.
So
I'll
write
a
DB
dot.
Signup
function.
Don't
worry
guys!
This
is
all
there.
Everything
is
there
exactly
in
the
docs.
C
C
C
B
C
Don't
have
anybody
else
up
after
you,
so
so
much
so
keep
going.
Thank
you
so
much
yes,
okay
and
I'm
just
giving
the
nft.
So
if
you
look
at
the
nft
collection,
there
are
two
main
parameters
which
is
the
ID
and
the
owner
and
for
the
owner
we
pass
in
the
public
key
and
for
ID
we
pass
in
the
nft
ID,
which
is
which
is
you
get
it
through?
C
C
When
we
log
in
in
the
front
end,
we
get
a,
we
get
a
placeholder
where
we
fill
in
the
value,
and
it
takes
that
value,
which
is
the
nft
ID
right
and
for
getting
the
again
for
getting
the
public
key.
It's
you
have
to
get
a
user
collection
and
get
the
record.
C
C
Done
the
final
thing
we
would
have
to
do
is
so
in
the
public
key,
so
we
talked
about
getting
the
public
key
right
and
getting
the
public
key,
the
value
which
is
value,
the
the
public
key
which
is
posted
to
the
Explorer
and
the
public
key
which
is
passed
on.
There
is
a
small
difference.
One
is
64
bits
and
one
is
65
bits,
so
a
small,
a
small
Arrangement.
What
what
we
can
do
there
is
go
to
the
public
key
function.
C
C
C
0X
would
be
added
and
and
a
digit
four
I
can
show
you
the
result.
There's
a
video
clean
video
in
this
which
you
can
revisit
again,
but
for
time
constraints
I'm
not
showing
that
process,
but
there'd
be
a
bit
extra
in
the
public
key
which
is
signed
in
the
Explorer,
so
we're
just
taking
care
of
it
by
you
know:
slicing
off
the
public
key
slicing
off
one
bit
from
the
public
key
right
and
almost
done
now.
C
One
another
thing
that
is
worth
noting
is
that
each
time
you
refresh
the
page
you
get
logged
out
and
you
have
to
sign
in
again-
and
you
have
to
you,
have
to
you
know
log
in
again,
so
you,
if
you
wanna,
take
that
off,
you
can
use
use
effect,
which
is
you
have
the
code
directly
in
the
in
the
polybase
docs
I'm
just
typing
it
out
here.
C
And
I
just
paste
it
for
the
time
being.
C
Cool
and
more
thing
is
signer.
C
C
B
C
C
C
There,
okay,
it's
it's
showing
me
a
lot!
Then
it
usually
used
to
ask
for
a
login
but
I'm
trying
to
maintain
an
FD
here.
Just
fbm
data
words
test.
It.
C
And
once
you
go
to
the
Explorer,
you
should
see
the
nft
here.
This
is
the
way
this
is
the
place
where
you
can
see
all
your
tables.
All
your
collections,
all
the
read
requests
come
here
and
obviously
based
on
based
on
the
permissions
that
you
create.
You
would
be
able
to
read
or
write
the
data
which
have
been
given
permission
to
and
yeah.
That's
that's.
Basically
the
chat
app
guys.
C
The
first
thing
is
to
create
the
collection,
install
the
libraries
and
you
know,
play
around
with
our
dogs
a
bit
and
code,
a
code
out
as
to
which
functionalities
you
want
to
use.
It's
mainly
authentication,
storing
data
and
dynamic
nft,
as
said
mentioned,
and
you
can
build
a
lot
of
cool
applications.
C
We
have
a
YouTube
so
from
the
last
hackathon
we
reached
out
to
all
the
hack,
all
the
people
who
used
polybase
and
built
applications,
and
we've
collected,
we
made
a
video
of
different
applications
that
can
be
built
or
using
polybase
and
that's
in
the
polybase
YouTube
channel.
You
can
refer
to
that
as
well
and
yeah
guys.
That's
that's
pretty
much
from
my
end.
Thank
you.
It's
a
good.
A
That
was
great.
Thank
you
very
much
shaky
and.
C
A
There,
for
for
that,
that
was
great
great
there,
so.
A
And
we've
got
some
of
the
links
in
the
chat
here
as
well
for
polybase,
so
and
and
also
yeah,
some
of
the
the
personal
Twitter
accounts.
So
that's
great
thanks
a
lot
brilliant
thanks.
A
lot
then
shaky
and
thanks
to
everybody
who
has
tuned
in
for
this
series
of
talks
and
so
yeah
I
believe
I
can't
remember,
I
think
we
may
have
we've
got
one
more
I.
Believe
tomorrow
is
that
I
think
we've
got
Axel
air
coming
on
tomorrow.
I
think
it's
just
one.
A
The
one
Presentation
tomorrow
Carlene
in
the
chat,
will
probably
correct
me
on
this,
because
she
knows
what
was
going
on
than
me
with
the
scheduling
so
yep.
But
thank
you
everybody
for
tuning
in
and
again,
if
you
need
help,
have
a
look
on
the
ipfs
Discord
Channel,
which
is
where
we
are
running
all
of
the
mentorship
for
this
program.