Copyright © 2025 World Wide Web Consortium . W3C ® liability , trademark and permissive document license rules apply.
W3C Web of Things (WoT) enables applications to interact with and orchestrate connected Things at the Web scale. The standardized abstract interaction model exposed by the WoT Thing Description enables applications to scale and evolve independently of the individual Things. Through WoT Bindings, the abstract interactions can be bound to various network-level protocols, standards, and platforms for connected Things, which already have have millions of devices deployed in the field today. This is done through protocol-specific URI schemes, additional descriptive vocabularies, and examples that guide the implementors of WoT Things and Consumers alike.
This document defines a registry of WoT bindings that make it possible to have a record of the different bindings. Additionally, it sets the rules that govern this registry to guarantee a quality standard, long lifecycle and ease of use for the developers.
This section describes the status of this document at the time of its publication. A list of current W3C publications and the latest revision of this technical report can be found in the W3C standards and drafts index .
This document was published by the Web of Things Working Group as an Editor's Draft.
Publication as an Editor's Draft does not imply endorsement by W3C and its Members.
This is a draft document and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to cite this document as other than a work in progress.
This document was produced by a group operating under the W3C Patent Policy . W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent that the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy .
This
document
is
governed
by
the
03
November
2023
18
August
2025
W3C
Process
Document
.
From the charter:
Support WoT Interoperability: The WG will improve out-of-the-box interoperability and enable the integration of WoT into other ecosystems and communities. Thus, the WG will define core binding and profiling mechanisms, and define additional profiles and bindings, as appropriate.
Our Story and Use Case:
The goal of the W3C Web of Things is to support multiple protocols via the bindings mechanism. There are domains like smart cities and infrastructure where multiple stakeholders bring different devices and systems with different protocols. This means existing systems should be made interoperable with a descriptive approach via Thing Descriptions.
It is unrealistic to incorporate a complete list of bindings into a REC document before its publication; thus, we need a more flexible mechanism.
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.
The
key
words
MAY
,
MUST
,
MUST
NOT
,
SHALL
NOT
,
SHOULD
,
and
SHOULD
NOT
in
this
document
are
to
be
interpreted
as
described
in
BCP
14
[
RFC2119
]
[
RFC8174
]
when,
and
only
when,
they
appear
in
all
capitals,
as
shown
here.
The terms below sometimes use the word X as a placeholder for the concrete binding that is referred to.
[DP] I think we should not speak about "document" but rather about "registry". Also in the title.
A binding SHOULD be written by people with a good understanding of the protocol and media type (or similar), who are not necessarily the TD Editors. This includes people and organizations inside and outside of the WoT WG.
The binding registry MUST be a separate document but associated with a TD version.
Association of a binding with the TD specification (registry entry) SHOULD be confirmed by the WoT Working Group or its custodian. In other words, a person needs some permission and/or confirmation to authoritatively say that a given binding can be used with TD version X. The custodian of this registry is the WoT WG in the beginning.
The binding document (registry entry) CAN be hosted by another entity than the custodian.
A
preliminary
list
set
of
rules
that
is
extending
the
https://www.w3.org/2023/Process-20230612/#reg-def
Registry
Definitions
from
the
W3C
Process
Document
(needs
more
iteration):
can
be
found
below
and
is
structured
as
follows.
Each
entry
MUST
contain
this
information,
and
all
the
following
information
.
All
parts
of
the
entry
MUST
not
conflict
with
existing
bindings.
bindings
.
| Information | Type | Description |
|---|---|---|
| Name of the binding |
string
|
Examples:
HTTP
Binding
,
CoAP
Binding
|
|
Link
to
the
binding
|
anyURI
|
Stable
link
whose
content
cannot
change
(e.g.,
a
date,
version
number,
etc.)
Examples:
https://www.w3.org/TR/wot/binding-templates/http-20240726/index.html
|
| Binding ontology prefix |
string
|
Examples:
htv
,
modv
,
cov
|
|
Binding
Identification
in
| any type |
URI
Scheme
or
other
TD
terms
reserved
for
this
binding.
Examples:
"subprotocol":"sse"
,
"href":"http://example.com"
,
"contentType":"application/json"
Note
Until
a
custodian
review,
no
registration
is
needed.
A
full
IANA
registration
is
required
for
the
final
and
stable
version
of
the
binding.
The
submitter
SHOULD
trigger
the
registration
at
IANA.
If
needed,
the
custodian
MAY
trigger
the
IANA
registration.
The
submitter
MAY
do
a
provisional
registration
to
simplify
the
process
on
the
IANA
side.
|
|
Supported
TD
version
|
string
or
Array
of
string
|
A
binding
SHOULD
correspond
to
specific
TD
specification
version(s).
Note: no uniqueness needed |
| Status |
enumeration
of
,
,
Superseded
,
Obsolete
]
|
One
of
Initial
,
Current
,
Superseded
or
Obsolete
.
|
|
Summary
|
anyURI
|
Link
to
the
summary
|
| Version |
string
|
A
unique
string
for
that
entry's
history
that
denotes
the
version
of
the
entry
that
is
linked.
The
version
string
SHOULD
contain
a
UTC-based
date
in
ISO
8601
format
in
the
form
of
YYYY-MM-DD
.
|
W.r.t.
"Binding
Identification
in
TD":
These
terms
should
be
refined
based
on
the
additions/changes
to
the
TD
2.0
mechanism,
e.g.,
introducing
a
protocol
term
or
putting
restrictions
on
URI
scheme
and
subprotocol
combination,
data
mapping,
etc.
The mechanism is as follows:
We
distinguish
between
the
following
statuses:
Initial
->
Current
->
Superseded
or
Obsolete
Initial
:
Document
is
correctly
written
but
no
implementation
experience
has
been
necessarily
documented.
Current
:
Custodian
recommends
it
for
new
implementations
and
it
has
enough
implementation
experience
Superseded
:
A
previously
"current"
entry
that
is
now
superseded
with
a
newer
one
Obsolete
:
Custodian
does
not
recommend
the
usage
of
this
binding
This
is
inspired
by
the
TTWG
Boilerplate
.
Alternatives
that
can
be
reconsidered
if
needed:
needed.
Initial:
provisional,
draft,
in
development
development.
Current:
Final,
Stable
Stable.
Outdated:
Old,
Deprecated
(not
preferred
since
it
is
still
usable),
Previous,
Obsolete.
Also
see
https://www.w3.org/policies/process/#RecsObs
What
are
the
requirements
for
transitioning
from
one
value
to
another?
See
the
"Requirements
on
the
Submitted
Document"
section
6.4
Submission
Requirements
as
well.
Versioning of registry entries (see https://github.com/w3c/wot/tree/main/registry-analysis#versioning )
We
do
not
allow
updates
to
a
registry
document's
content.
A
new
version
of
a
binding
is
a
resubmission
and
optional
deprecation
of
the
old
one.
However,
new
features
need
new
implementations,
so
it
is
not
a
completely
new
registration.
Life-DelDep
registration
No entry is ever deleted. Deprecated entries are moved to another table or are clearly marked deprecated, colored differently, and moved to the bottom.
If
the
WoT
WG
no
longer
exists,
the
W3C
Team
or
their
its
delegated
entity
becomes
the
custodian.
For
example,
a
dedicated
W3C
community
group
can
be
created
to
maintain
the
registry.
Reasons
Behind
the
Requirement:
Maintaining
This
way,
the
registry
without
the
WoT
WG
should
can
be
possible.
Own-Rev
maintained
for
a
long
period.
Reviewer:
If
there
is
an
expert
of
the
binding
entry's
specification
and
a
WoT
expert
within
the
custodian
entity,
they
CAN
do
the
review
independently.
If
not,
the
custodian
MUST
choose
an
expert
for
that
specification
and
a
WoT
expert
who
can
be
the
same
person.
What
does
the
binding
have
to
contain
to
go
into
the
table
table.
A
binding
that
uses
a
protocol
MUST
map
at
least
one
WoT
operation
(
op
keyword
value
such
as
readproperty
)
to
a
protocol
message
and
vice
versa
versa.
A
binding
that
uses
a
serialization
format
via
the
contentType
keyword
MUST
mention
how
the
Data
Schema
terms
should
be
used
to
describe
the
messages.
This
avoids
submission
of
a
binding
like
"XML
Binding"
that
says
"Use
contentType:application/xml
and
nothing
more.
That
alone
would
not
be
enough
to
serialize
correct
messages
based
on
the
data
schema.
TODO:
We
will
need
additional
mechanisms
(including
vocabulary
terms)
to
ensure
that
it
is
possible
to
use
other
media
types.
Req-TranInit
Initial
entry
MUST
be
a
correct
document
which
complies
with
Req-content
6.4.11
Content
.
The
reviewer
MUST
NOT
does
not
need
to
check
whether
the
binding
tries
to
map
readproperty
to
a
non-existent
HTTP
method.
A
successful
initial
document
triggers
a
"Call
for
Implementation".
Each versioned entry MUST contain a changelog in the entry itself.
The
WoT
binding
MAY
be
just
one
section
of
the
document.
In
that
case,
the
"Link
to
the
binding
document"
in
the
registry
entry
MUST
point
to
the
specific
location.
PDF
or
similar
document
types
MAY
be
submitted
if
the
"Link
to
the
binding
document"
in
the
registry
entry
contains
a
text
pointing
to
the
section.
However,
HTML
and
Webpages
SHOULD
be
favoured.
favored.
The
WoT
binding
document
DOES
MAY
NOT
have
to
follow
the
W3C
copyright.
The
submitter
is
free
to
choose
based
on
the
process
they
or
their
organization
follows.
The binding document linked in the registry entry SHOULD be open to read, use, and implement, but that is not required for the document to be added to the registry.
Reviewers
MUST
have
access
to
the
binding
document
and
to
the
protocol
or
media
type
specification
(what
the
binding
specifies)
specifies).
The submitter MUST fill in the GitHub form provided by the custodian to generate the summary document, which is hosted by the custodian together with the registry. This form contains the following:
Transition
from
"Initial"
Initial
to
"Current"
Current
The binding MUST contain the following sections in the order presented below. The binding CAN contain other sections anywhere, including between the required ones. The submitters are encouraged to look at the existing submissions. There MUST be at least one operation mapped to a protocol message/vocabulary term. The submitter SHOULD use the table template provided in the document for the vocabulary.
A
binding
may
not
fit
newer
or
older
versions
of
a
TD
specification
(e.g.,
readproperty
can
become
readprop
,
or
a
new
operation
can
arrive).
Thus,
when
writing
a
binding,
it
must
be
associated
with
one
or
more
known
TD
specification
versions.
The requirements for the machine-readable documents are as follows:
The binding entry SHOULD NOT conflict with other entries in the registry, such as its other versions or its dependents, by redefining the same concepts, such as redefining the URI Scheme, the vocabulary terms, or the default assignments. If a previously stable binding is being improved upon by the same organization, that previous binding MUST be deprecated once the new one reaches the stable status.
The
namespace
(prefix
and
its
values)
defined
in
a
binding
SHALL
NOT
be
redefined
or
extended
in
any
other
binding,
e.g.,
cov:method
values
shall
not
be
extended
in
LWM2M
and
cov:newTerm
shall
not
be
added
in
LWM2M
binding.
If parts of the entry require the existence of another binding, i.e., has dependencies, the dependency MUST first be submitted as a separate entry. For example, before LWM2M can be submitted, the CoAP Binding must exist.