Your First Schema
Create hello.vexil:
namespace hello
message Greeting {
priority @0 : u3
name @1 : string @limit(64)
count @2 : u32 @varint
}
Or ask the CLI for a starting file:
vexilc init hello
Check the contract
vexilc check hello.vexil
On success, vexilc prints the canonical BLAKE3 schema hash and exits with
status 0. On failure, it reports the source span and a diagnostic explaining the
rejected contract.
Read the schema as wire instructions
namespace hellogives declarations a stable namespace.priority @0 : u3assigns ordinal 0 and exactly three wire bits.name @1 : string @limit(64)uses a length-prefixed UTF-8 string with an application-visible bound.count @2 : u32 @varintuses unsigned LEB128 instead of fixed-widthu32.
Ordinals are durable wire identities. Reordering source lines does not reorder the encoded fields.
Inspect the hash
vexilc hash hello.vexil
Comments and formatting do not affect the hash. A change to the compiled contract does.
Next: Generating Code, or run the complete Quickstart.