►
Description
Tellor - Getting Tellor Data for Any Usecase presented by Tim Kernell at the FVM Dataverse Hackathon
A
Okay,
we
are
live
and
we're
back
and
we
have
Tim
kernel
here
who
is
going
to
be
talking
about
getting
data
sort
of
on
and
off,
using
teller
right.
B
A
Right:
cool,
okay!
Let
me
just
just
if
we
just
one
second
here,
because
there's
a
few
people
that
might
still
be
coming
in,
because
what
we've
done,
we
we
had
everything
kind
of
running
back
to
back
as
a
single
stream,
and
then
we
kind
of
got
ahead
of
ourselves
slightly
and
ended
up
with
a
bit
of
a
bit
of
space.
So
we
kind
of
stopped
and
restarted
the
Stream
So
I
just
want
to
make
sure
that
I
think
we've
got
some
people
already
in.
A
Hopefully,
hopefully
people
can
hear
you
yeah.
It
looks
like
your
sounds
coming
through.
Okay,
great
people
in
the
in
the
chat
could
just
let
me
know
they
can
hear
myself
and
Tim
test.
B
A
Hopefully,
in
there
that
looks
good
if
we've
got
some
people
in
already
cool
yep
and
got
confirmation.
That's
all
volumes,
all
good,
so
great
right,
well,
Tim
great
to
great
to
meet
you
I,
don't
think
we've
we've
met
yet
so
I
don't
know
if
you
want
to
give
just
a
quick
introduction
to
yourself
and
then
kind
of
jump
into
your
into
your
talk.
B
Yeah,
thank
you,
nice
to
meet
you
as
well,
and
so
I'm,
Tim
and
I
work
for
the
teller
Oracle
protocol
as
a
solidity
developer
and
I
am
just
going
to
be
walking
you
all
through
how
to
integrate
the
tower
Oracle
into
your
smart
contracts,
so
how
to
connect
your
contract
to
the
tower
Oracle,
how
to
retrieve
data
and
then
how
to
actually
request
the
data,
and
so,
let's
begin
so
I've
I've
put
together
a
video
demo
just
to
make
sure
nothing
goes
Haywire
in
a
live
demo.
B
So
just
as
an
high
level
high
level
overview
we'll
be
showing
you
how
to
install
the
using
teller
user
Library,
which
really
just
includes
a
contract
that
you
inherit
into
your
contract
and
it
provides
multiple
gitter
functions
for
retrieving
data.
So
I'll
show
you
how
to
get
that
hooked
up.
I'll
show
you
how
to
actually
set
your
contract
up
to
retrieve
the
specific
data
that
you
want.
B
So
here's
just
a
basic
framework,
simple
contract,
which
will
just
be
retrieving
data
and
I'm,
showing
you
this
in
the
remix
kind
of
solidity
IDE
just
because
that
will
allow
us
to
interact
with
our
contracts,
but
actually
before
this
step,
when
you're
develop
developing
locally,
you
will
first
have
to
have
npm
install
using
teller.
So
that's
all
lower
case
npm
install
using
teller,
an
npm
package,
and
that
just
includes
this
contract
that
will
be
importing
and
inheriting.
B
A
B
B
So
here
you'll
see
how
we
do
that.
First,
you
create,
what's
known
as
query
data
and
that's
a
bytes
representation
of
your
unique
query,
identifier
and
so
for
with
the
teller
Oracle.
You
have
many
different.
You
know
any
type
of
data
you
can
request,
so
we
create
these
unique
data
specifications
and
the
most
common
one
is
the
spot
price.
So
for
this
price
query
type,
you
have
two
different
arguments:
the
asset
and
the
currency.
B
So
in
this
case
our
asset
will
be
Bitcoin
or
BTC
and
then
the
currency
will
be
USD,
and
so
you
form
your
query
data,
starting
with
these
arguments,
BTC
USD
and
then
you,
you
complete
the
query
data
by
then
encoding.
B
B
and
now
we
can
take
that
information
to
actually
retrieve
our
desired
data
from
the
teller
Oracle.
So
now
we'll
be
using
one
function:
a
getter
function,
that's
provided
with
the
using
teller
Library,
that's
going
to
be
the
data
before
function,
which
returns
a
value.
That
was
the
value
that
was
reported
to
the
Oracle
and
then
the
time
stamp
at
which
that
value
was
submitted
on
chain
and
the
get
data
before
function
takes
two
arguments
and
it'll.
Take
your
query:
ID
the
unique
identifier
and
then
it
will
take
a
time
stamp.
B
B
So
we
are
building
in
a
buffer
time,
and
this
is
showing
best
practices
for
using
the
teller
Oracle,
because
the
security
of
this
Oracle
depends
on
anyone
coming
and
submitting
a
stake
to
have
the
ability
to
submit
data,
and
then
anyone
else
can
come
in
and
pay
a
dispute
fee
to
challenge
any
piece
of
data
that
was
reported
on
chain.
And
then,
then,
a
dispute
process
starts
and
tell
our
stakeholders
vote
on
the
validity
of
the
submitted
data.
B
B
B
So
that
is
one
big
piece
of
best
practices
when
using
the
teller
Oracle
and
then
we're
going
to
check
now
that
we've
retrieved
some
data,
we're
going
to
check
that
some
data
was
actually
retrieved.
So
you
just
assert
that
the
time
stamp
retrieved
is
not
equal
to
zero
and
also,
depending
on
your
use
case,
is
often
best
practice
to
check
how
old
the
data
that
was
retrieved
is.
So
you
know
a
lot
of
times
for
a
spot
price
for
those
use
cases
a
spot
price
expires.
B
It's
not
useful
after
a
certain
amount
of
time.
So
it's
often
good
to
check
that
it's
not
too
old
and
then
once
we've
passed,
those
checks,
we
decode
the
returned
data.
So
all
teller
data
is
in
bytes
format,
and
so
then
it
can
really
represent
any
type
of
data.
You
can
encode
any
type
of
data
into
bytes
format,
and
so
in
this
case
a
spot
price
is
a
un256
encoded
into
bytes.
B
So
now
that
we
have
that
we
are
going
to
deploy
this
contract
and
remember
in
our
Constructor,
we
needed
the
teller
Oracle
address
so
to
deploy
a
contract.
We
will
need
that
address
and
you
can
get
that
from
our
teller,
documentation,
docs.teller.io.
B
B
B
And
now
we're
not
going
to
wait
for
that
contract
to
actually
deploy
next,
we
need
to
add
a
tip
to
actually
request
the
Bitcoin
price,
so
on
testnet
we
for
for
the
token
we
are
using
this
teller
playground
contract,
which
it
also
you.
It
also
includes
a
whole
playground,
Oracle
environment,
but
in
this
case
we're
going
to
use
the
the
Teleflex
Oracle
contract,
but
the
teller
playground.
As
the
token.
B
B
B
Contract
which
handles
tipping
reports
and
incentivizing
data,
so
we
need
to
call
the
typical
erc20
approve
function
to
allow
the
auto
pay
contract
to
take
some
of
our
tokens.
B
B
So
you
can
either
generate
that
query,
ID
and
query
data
in
solidity,
or
we
also
have
a
query,
ID
Builder
tool.
You
can
find
that
in
on
our
website
at
teller.io,
I
think
you
can
see
it
under
Tools
or
you
can
see
it
at
this
at
this
URL
here
querybuilder.teller.io.
B
And
this
just
lets,
you
input
whatever
inputs,
you
need
for
your
query
data
and
you
can
generate
the
query
data
and
the
query
ID,
so
we're
inputting
b2c,
USD
and
we're
going
to
use
these
as
inputs
to
our
tip
function.
Call.
B
So
yeah
just
to
review,
we
just
went
over
installing
the
using
tower
library
with
npm,
install
using
teller
and
again
that
that
Library
basically
just
includes
a
a
contract
with
multiple
getter
functions
for
easily
retrieving
Oracle
data
from
teller.
We
showed
how
to
then
connect
that
contract
to
your
own
contract.
B
You
input
the
teller
Oracle
address
into
your
Constructor
and
then
you
can
you'll
need
to
form
your
query,
ID
and
query
data
in
order
to
specify
exactly
what
data
you
need
in
your
contract
and
then
we
showed
retrieving
the
data
from
the
Oracle
and
using
best
practices
with
the
get
data
before
function,
and
then
some.
B
Practices
when
looking
at
the
data
that
you
actually
retrieved,
then
we
deploy
our
contract
and
then
we
went
over
add
a
tip
in
the
hyperspace
test
environment
using
the
teller
playground
as
your
token
and
then
calling
the
approve
function
and
then
going
over
to
the
auto
pay
contract
and
adding
a
tip
to
actually
specify
the
data
that
you
want
and
incentivizing
data
providers
to
submit
your
data
and.
A
Well,
we've
just
had
a
question
come
in
from
Mega
make
here,
let's
ask:
can
you
link
to
a
search
for
available
queries
or
do
we
need
to
find
it
here
and
they've
got
a
link
there
I
don't
know
if
you
can
see
the
chat
there,
a
link
to
the
GitHub
teller.io
data
specs
and
there's
a
list
of
data
specs
here
for
various
things,
gas
prices
fall
coin,
deal
status,
etc,
etc.
Is
that
where
they
would
go
or
is
there
somewhere
else
and
can
they
can
they
add
user
made
queries
as
well.
B
Yeah,
that's
that's
a
really
good
question.
The
data
specs
is
just
about
the
right
place
to
look
so
that
is
where
any
users
anyone
can
come
and
specify
a
new
data
type,
and
that
will
show
that
repo
will
show
all
the
data
types
that
someone
has
already
created.
B
So
that
is
a
great
place
to
look
again,
that
is
on
the
teller
GitHub
and
it's
called
the
data
specs,
that's
what
the
repo
is
called
and
the
second
question.
Yes,
anyone
can
create
any
data
type,
so
the
tele
Oracle
is
very
flexible,
so
you
just
have
to
be
able
to
specify
some
kind
of
very
specific
data
that
you
want.
A
Data
type
there,
which
is
pretty
cool,
obviously
that'd,
be
a
good
one
that
people
might
want
to
play
around
with
in
the
context
of
filecoin
if
people
are
creating
their
own
data
specs.
And
how
do
you
get
people
to
actually
report
that
data
back?
Is
it
just
by
the
tip?
A
B
Yeah,
so
you
know
technically,
you
could
just
create
that
data
specs
document
and
then
just
start
requesting
the
data.
There's
no
there's!
No
technical
reasoning.
You
have
to
you
have
to
go
through.
You
know
the
teller
team
as
a
gatekeeper
or
the
teller
Community,
even
as
a
gatekeeper,
but
it
is
recommended
to
talk
to
the
teller
team
and
or
go
into
our
public
Discord,
and
you
can
make
a
message
in
the
reporter's
channel
that
hey
there's
this
data
type
that
I'm
going
to
be
using
and
I
love.
B
If
people
would
provide
that
data
so
yeah
it's,
it
would
be
good
to
talk
to
the
teller
team
and
we
can
help
get
your
data
type
integrated
into
our
reporter
software,
which
is
just
it's
called,
tell
it,
and
it's
a
python
client
that
reports
data
automatically
and
that's
just
something
we
provide
as
the
teller
team
and
it
just
it,
makes
it
easy
for
anyone
in
the
community
to
relatively
easily
get
up
and
running
reporting
data.
B
B
A
Cool
great
and
I
see
so
on
the
actual
within
this
fem
dataverse
hackathon
tell
her.
I
have
some
bounties
up
so
there's
a
prize
pool
of
two
and
a
half
thousand
dollars
for
up
to
the
top
ten
best
teams
capped
at
a
thousand
dollars
per
team.
So
there's
definitely
an
incentive
there
to
you
know,
start
checking
out
teller
and
building
stuff
on
it.
A
As
I
mentioned,
there
is
a
falcoin
deal
status
a
bit
there,
so
that
could
be
of
interest
with
perhaps
anything
you're
building
on
on
filecoin
and
that
side
of
things
so
yeah
that
all
seems
pretty
cool.
Is
there
any
other
any
other
bits
and
pieces
you
you
wanted
to
cover
I'm
just
looking
to
see,
if
there's
any
more
questions
here,
how
do
we
reach
out
to
you
directly
Tim?
Are
you
on
Twitter
somebody
asks
yeah.
B
I
am
I'm
on
Twitter
at
heavy
chain
zero.
Four
heavy
change
is
spelled
like
the
words
zero
four
and
you.
B
See
me
in
a
in
the
tower
Discord
as
well
in
the
public
Discord
again
with
the
same
name,
heavy
chain.
A
Okay-
and
that's
that's
generally,
where
the
community
hangs
out,
then
is
it's
in
the
Discord.
A
That's
pretty
cool
action
happens.
If
people
are
needing,
you
know,
help
specifically
with
teller
and
want
to
find
out
help
from
the
community.
Then
then
that's
where
to
go
and
I
I
presume
you.
Can
there
there's
a
link
to
that
from
from
the
from
teller
to
IO,
somewhere
I'm
guessing
yeah.
B
A
The
top
there
cool
great
okay,
well
thanks
very
much
Tim,
so
next
coming
up.
Sorry
is
there
anything
thank.
B
That
I
didn't
mention
the
bounties
specifically
just
or
the
requirements
for
them,
but
you
basically
have
to
show
what
we
went
over
yeah.
B
More
yeah,
okay,
so
you
just
have
to
show
a
link
to
your
own
project
that
integrates
teller,
the
using
teller
npm
package
and
your
project
should
be
able
to
pull
in
some
data
like
we
showed
in
this
demo
and
then
the
other
piece
is
showing
a
transaction
hash
for
having
added
a
tip.
B
B
A
Awesome
great
okay!
Well
thanks
a
lot
then
Tim
and
yeah,
thanks
for
coming
on
and
I
look
forward
to
seeing
I'm
sure
you
do
as
well
seeing
what
people
build
as
part
of
this
hackathon
we'll
tell
her
I've
had
a.
A
Of
actually
play
with
teller
myself,
but
it's
one
that
it's
kind
of
on
my
on
my
to-do
list
to
have
a
play
with
and
so
I'm
looking
forward
to
it.
So
this
has
been
really
helpful
for
me
personally
to
see
what
the
steps
are
and
I'll
probably
try
going
through
the
the
same
steps
myself
as
well
as
part
of
it.