Smart contracts

An idea, turned into
something you can check.

This page follows one thing the whole way down: a promise. It starts as a sentence somebody wrote, becomes terms nobody can edit, gets compiled into code nobody typed, deployed to a public chain, paid through on a live chain, settled by a command, and finally turned into a reputation that decides who gets the next job.

Every address and transaction below is real and opens on a public explorer. You don't need to know anything about crypto to follow it — the first stop assumes you don't.

Sui testnet · Base Sepolia (84532). Nothing here is mainnet — and the page says so.

18
contracts on-chain
6
Sui packages
1
EVM contract live + source-verified
13
hardened in security passes

The whole way down

One promise, eight stops

Read it in order and you'll have followed a single obligation from the moment somebody said it out loud to the moment it changed who the system trusts. Nothing below is a mock-up.

01 It starts as a sentence somebody says out loud an idea — not yet an obligation, and most ideas should never become one
02 The terms are compiled into a contract nobody types it; it is generated from the same file that defines the brain
03 It lands on a chain shaped like the idea a relation becomes a shared object because that is what a shared object is
04 It is deployed, and labelled honestly a real package id you can open — on testnet, and the page says so
05 A payment goes through, and the payer never learns a chain was involved one tap, about sixty seconds, no wallet and no gas
06 The payment clears wherever value settles pay on one chain, claim on another — the coupon carries the proof
07 The command runs, and the promise settles green is kept and adds weight; red is broken and adds drag
08 The record decides who gets the next job reputation stops being a rating we control and becomes a fact you can check

The last stop feeds the first: a settled promise is what decides who is trusted with the next idea.

01 The idea

Start here if you don't do crypto

A contract here is a promise you can't edit afterwards

Forget tokens and wallets for a moment. Strip a smart contract back and it is a very short, very stubborn agreement: these are the terms, this is the one thing that decides whether they were met, and neither can be changed once it starts.

That's the whole idea, and it's the part that's useful whether or not you care about blockchains. Most agreements go wrong not because someone lied, but because the terms quietly moved — the spec grew, the definition of "done" softened, and by the end nobody can say what was actually agreed. A promise recorded this way cannot do that.

1 Someone writes down what they will deliver and one command that proves it — written while it still fails
2 The terms are hashed and recorded before any work starts after this point they cannot be edited, which is the entire value of writing them
3 The work happens off chain, at normal speed the chain is not watching; it is waiting
4 The command runs. Green is kept, red is broken and the verdict is final — nobody can un-settle it, including us

No wallet, no tokens, no crypto knowledge required to read that.

02 The contract

The part that is genuinely unusual

Nobody wrote this contract

Almost every smart contract in the world is hand-written by a human, then audited by other humans hoping to catch what the first one meant but didn't say. Ours isn't written at all. It is compiled — from the same file that defines the platform's brain.

THE ONE DECLARATION
schema/sui.tql — human-written, once
relation promise,
  relates maker,      # who promised
  relates oracle,     # who attests
  owns terms-hash,    # frozen terms
  owns proof,         # the command
  owns promise-state, # 0…4 ratchet
  owns strength,      # kept → weight
  owns resistance;    # broken → drag
WHAT IT COMPILES TO
promise.move — generated, never edited
// GENERATED — DO NOT EDIT
module one_generated::promise {

  public struct Promise has key {
    id: UID,
    maker: address,
    oracle: address,
    terms_hash: String,
    promise_state: u64,
    ...

Read the two sides again. Nobody decided that maker and oracle should be blockchain addresses. They are the two roles of a relation, and a rule in the generator turns any role into a typed address. Change the schema, re-run the compiler, and the contract changes with it. Change the contract by hand and the build refuses you: the header says so, and a test pins the emitted lines.

SEVEN OF THE TWENTY-FOUR PINNED LINES
maker: address, the relation role became a typed address — no special-casing
oracle: address, the second party, by shape
transfer::share_object(o); @sui:shared → both parties see one object
promise_state: 0, you cannot mint a promise that is already partly kept
promised_at: clock::timestamp_ms(clock), the time comes from the chain, never the caller
assert!(sender == promise.oracle, ENotOracle); only the attester can settle it
assert!(promise.promise_state < 3, EAlreadySettled); settled once, settled forever

If the compiler ever emits something else, the test goes red and nothing ships.

What the software enforces and what the chain enforces cannot drift. They are the same declaration, read twice.
03 The chain

Why this is a Sui project and not a chain-agnostic one

The brain is made of objects. So is Sui.

The compiler above only works because of a correspondence that most chains cannot offer. Our knowledge graph describes the world as objects with owners and relationships between them. Sui's Move describes the world the same way. So the mapping isn't a convention we invented and documented — it falls out of the two models being the same shape:

entity owned object
a thing that exists on its own one signer, no consensus

The fast path. A scoped agent wallet is one — only its controller can move it, and it never queues behind anyone.

relation shared object
a fact binding two or more parties several parties, one contract

A promise binds a maker and an oracle. Both must see the same object, so it is shared — and its roles become typed addresses automatically.

harden frozen object
a route proven often enough to trust immutable, forever

Once a path is a highway, nobody edits it — not us, not the owner. What was proven stays proven.

On an account-based chain there is nothing for a relation to become. You would hand-write a mapping, maintain it forever, and hope it stayed true. Here, a relation is a shared object because that is what a shared object is — a fact several parties hold at once. Sui's object model is not a deployment target we chose. It is the reason the compiler can exist at all.

04 Deployed

Where this actually is

Deployed, and plainly labelled

The compiled package is live. You can open it right now and read the generated code on chain — it is the one at the top of the list, and it is the only one on this page nobody typed.

GENERATED PACKAGE · SUI TESTNET
0xbe8be4d69af5627fb246b564851051bdb402495165db02c169ffbb0688b885de

Contains promise and substrate — both emitted from schema/sui.tql, neither hand-edited.

Six Sui packages, all on testnet, chain id 4c78adac. Nothing here is mainnet, and this page will say so until the day it isn't. The estate is real, the addresses resolve, the transactions happened — and it is still testnet. Anyone who tells you the difference doesn't matter is selling something.

05 Money moves

Proven end-to-end

Crypto checkout with the crypto removed — proven live

One tap to pay. About sixty seconds to final settlement. No wallet setup, no seed phrase, no gas — the customer never learns a blockchain was involved. And this is not a demo claim: the verifier is live with its full source published on Basescan, and a real coupon was signed and claimed on-chain. Read the transaction yourself.

Source verified
0x5C871C00Db09241362B536B651bCF52354Bc182a
06 The mechanics

How it fits together

Pay on any chain. Claim on the destination. The contract does the rest.

1

Pay on any chain

A user pays in SUI, ETH, USDC, SOL, or BTC. The worker verifies the payment on the source chain — it stores nothing.

2

The worker signs a coupon

A stateless worker signs a coupon binding the recipient, amount, and payment. On EVM the signature is EIP-712, bound to one contract on one chain.

3

Claim on the destination

The user submits the coupon to the destination contract — the Sui verifier or the EVM Universal Verifier.

4

The contract enforces every rule

Signature, supply cap, and anti-replay nonce are all checked on-chain. Only then does it mint ONE or release USDC. Blockchain is the source of truth.

07 Settlement

What it unlocks

Reputation stops being a platform's opinion

Look once more at the last two lines of that schema. A promise owns strength and resistance — and those are the exact two numbers every routing path in the system already carries. That is not a coincidence; it is the point.

A KEPT PROMISE

settles green, and adds weight to the party that made it. The system routes more work toward whoever keeps their word.

A BROKEN ONE

settles red, and adds drag. Nobody bans anyone. The work quietly stops arriving — which is how reputation works everywhere else, made explicit.

So an agent's track record is not a star rating we control and could edit. It is the accumulated settlement history of promises it made in public, on a chain we cannot rewrite, in the same vocabulary the router reads when it decides who does the next job. An agent that has never worked for you can still arrive with a record you can check — and one that breaks its word cannot start again under a new name with a clean one.

Deliver, and the system sends you more work. Break your word, and the work routes away.

The other half: an agent that cannot overspend

Reputation handles the agent that breaks its word. It does nothing about the agent that means well and spends your money anyway. So the budget is not a setting in our software — it is a separate contract on the same chain, and the transaction that would breach it does not get refused politely. It fails.

A POLICY

lives in the application, is enforced by the application, and is exactly as trustworthy as the application. Which is to say: as trustworthy as whoever can deploy it.

A SPEND CAP ON CHAIN

is enforced by the chain. We cannot raise it on your behalf, an agent cannot argue with it, and a bug in our code cannot get past it. AI safety as infrastructure, not intention.

08 What it is worth

Why it matters

What the contracts do for your business

These aren't a science project. They're the plumbing for getting paid, selling online, and putting AI agents to work — without a middleman taking a cut or holding your money.

One pattern runs through all of them: replace "trust our dashboard" with "read the chain." An affiliate program without a blockchain is a black box — partners see the commissions the merchant chooses to show them, and have to take the payout on faith. A payment link in someone's database can be re-pointed after you share it. A spending limit in an admin panel is a suggestion. Put those rules on a public chain and both sides can verify them — nobody has to trust, and nobody can cheat.

A concrete example

A customer in São Paulo buys your $49 course.

They pay in one tap. About a minute later the money is sitting in a wallet only you control — no bank, no chargebacks, no 3% processor fee. The customer never had to learn what a crypto wallet is.

You keep 99%, not 97%

The gateway takes a 1% fee, not 2.9% + 30¢. On a $49 sale you keep $48.51 instead of $47.28.

Payment Gateway

Paid in ~60 seconds, for good

Settlement is instant and final on-chain — no 2–7 day hold, and no chargebacks to fight months later.

Claim Verifier

Zero crypto knowledge required

You sponsor the tiny network fee, so the customer just pays. No wallet setup, no seed phrase, no drop-off.

Merchant Auth

The money is yours

Funds land in a wallet you hold the keys to — not a processor account that can freeze or claw them back.

ONE Token · your wallet

Card processor
ONE contracts
Fee on a $49 sale
~$1.72
$0.49
Payout time
2–7 days
~60 seconds
Chargebacks
Yes — months of exposure
None — final on-chain
Who holds the money
The processor
You
Where customers can be
Card-network countries
Anywhere on earth

Example math: the deployed gateway's 1% fee vs a typical 2.9% + $0.30 card rate. On 1,000 sales a month that gap is roughly $14,000 a year you keep. Testnet today — the fee logic is the shipped contract.

Accept payments

Get paid from anywhere on earth and keep 99%. Prepaid credits, sponsored fees, and settlement in a minute — no bank, no chargebacks.

Gateway · Verifier · Credits

Sell memberships & products

Launch a subscription, course, or product that manages its own access and can be resold on a secondary market — no Stripe Billing, no cron jobs.

Entity · Subscription · Market

Put AI agents to work safely

Give an agent a hard spending limit it physically cannot exceed, and make every promise it makes provable on-chain.

Spend Cap · Promise · Service

Chain-neutral

One protocol. Any chain.

Live today on two very different chains — and built so the next one is an addition, not a migration. The coupon design separates where customers pay from where value settles, so no ecosystem is a lock-in.

Sui — the object-native home

Six Move packages: token, gateway, commerce, reputation. Ownership, receipts, and capabilities are real objects here, not ledger entries — the protocol's natural habitat.

6 packages · object-native

EVM — the same flow in Solidity

The coupon flow rewritten for the EVM: EIP-712 signatures, source-verified on Basescan, claimed live. One deployment away from Ethereum, Base mainnet, or any EVM chain.

Base Sepolia · source-verified · claimed

The rail — pay from anywhere

Customers already pay in SUI, ETH, USDC, SOL, or BTC. Adding a chain is a signer and a verifier, not a rewrite — the destination is a choice, not a commitment.

5 payment currencies · N destination chains

Security

Adversarially audited. Hardened twice. Nothing swept under the rug.

The estate went through two adversarial security passes. Findings were fixed, republished, and — for the payment coupon flow — proven on-chain. The open items that remain are tracked in the open, not hidden.

Pass one — the foundation

3 criticals and 8+ highs fixed and republished to testnet: guaranteed-asset-loss in the marketplace, an ungated promise settle, a split-brain double-mint in the verifier, a permissionless rewards mint, gateway fee and overflow bugs, subscription price gaming, and registry-bound admin capabilities.

Pass two — the coupon replay class

EIP-712 domain binding shipped to production so a payment coupon can't be replayed across contracts or chains; a merchant daily-limit bypass closed; a supply-floor and a fee bound added on Sui. The verifier fix was deployed and claimed live on Base Sepolia.

What we're honest about

Everything here is on testnet, so no real money is at risk today. A handful of items are known and open — on-chain enforcement of a promise's self-oracle rule, agent-ceiling uniqueness, and moving capability custody to a multisig before mainnet. The single-key custody theme is the explicit gate to a mainnet launch. We'd rather name that than paint a green checkmark over it.

Every contract, in plain English

Tap any contract to see what it does for your business, why it needs a blockchain, and the live code that proves it.

·

What the schema means

The list above is what is deployed. This is what it means. Every node below is a declaration in schema/sui.tql, and its colour is the on-chain disposition — the disjointness decision Sui executes against, not decoration. Change the schema, run codegen, and this picture, the Move module and the TypeScript client all move together.

Build on contracts you can read.

Every address above is live. Open any explorer link, read the source, verify the claims yourself — then start building.