Live on NEAR testnet and Midnight preview

A bridge nobody has to trust.
An AI nobody sees you ask.

LIGHTSOUT runs with nobody in charge. It brings NEAR to Midnight as a shielded token and back with no operator, no committee and no enclave: each chain runs a light client of the other. On top of it your agent asks an AI model on NEAR AI without an account and pays privately, as a member. A contract checks that the answer came out of the model's TEE.

PUBLIC · NEAREveryone sees who pays what. SHIELDED · MIDNIGHTNobody sees whichmember acts. ENCLAVE · NEAR AINever sees the asker. BRIDGEcontract BRIDGEcontract BOARDcontract MODELin a TEE ACCOUNTSalice.nearbob.nearcarol.neardave.nearerin.near MEMBERS 1register 2pay NEAR in locks NEAR and pays it out 3mints wNEAR and burns it 4one asks 5another asks the model signs the answer 6checks, then pays PUBLIC · NEAREveryone sees who pays what. SHIELDED · MIDNIGHTNobody sees whichmember acts. ENCLAVE · NEAR AINever sees the asker. BRIDGEcontract BRIDGEcontract BOARDcontract MODELin a TEE ACCOUNTSalice.nearbob.nearcarol.neardave.nearerin.near MEMBERS 1register 2pay NEAR in locks NEAR and pays it out 3mints wNEAR and burns it 4one asks 5another asks the model 6board checks, then pays signs the answer

Live sandbox

Ask a model. Compare what you see with what is public.

Every action is a real zero-knowledge proof and a real transaction, about a minute each. Watch how little of it becomes public.

Hosted sandbox. This server holds your agent's keys and proves for it, so it sees what the agent does. The agent is lent to you: the next visitor finds what you asked and what was answered. In real use the agent runs on your own machine and nobody sees it.

Your agent

each call: a proof and a transaction

Four things to try

    A ready agentopens in about 20 seconds
    • Registered on NEAR with a commitment to its secret
    • A member on Midnight, proven into the member tree
    • wNEAR in its wallet, bridged from NEAR and shielded

    What it can do

    • Ask a model without an accountA question with a reward. The contract pays only for the answer the model's TEE signed.
    • Send privatelyA shielded transfer to another member's address.
    • Withdraw to NEARBurn on Midnight, paid out by the NEAR contract.

    What you see

    only you

    Calls

      Your agent's calls appear here, each with its proof time and its transaction.

      What is public

      public

      Reading both chains…

        Watching both chains. A change shows up here within seconds of its block.

          A bounty shows its question, model and reward. Not who asked, and not the answer.

            A burn names its amount and its NEAR recipient. Not where the wNEAR came from.

            Private answers

            No account, no payment, no name at the AI provider.

            The model runs in a TEE on NEAR AI. Your agent has no account there, pays from a shielded balance and shows only as a member. The Midnight contract checks in zero knowledge that the answer was signed inside the model's TEE, and pays for nothing else.

            01

            A member asks

            The bounty names the model, the hash of the exact request and the keys of the model's attested TEEs. The contract keeps the reward. Its proof says that a member asks, not which one.

            02

            A solver asks the model

            Any member can run the request on NEAR AI. The TEE signs the model's name with the hashes of request and response. The solver seals the response on the board, proven to have that hash.

            03

            The contract checks and pays

            One circuit verifies the TEE's ed25519 signature over this request and this sealed answer. In the same call the key goes to the asker and the reward to the solver. Without an answer the reward returns.

            Who learns what when you ask

            NEAR AI

            The question, sent from the solver's account.

            Who asked. You have no account there, so a breach there cannot show it.

            The solver

            The question and the answer it fetched.

            Who asked, and whose coin pays it.

            Everyone else

            The question, the model, the reward and that an answer came.

            Who asked, who solved, and the answer.

            You

            The answer, sealed for a key only your agent holds.

            The contract's check that the model's TEE signed it.

            The question itself is public. Put nothing into it that names you.

            What is public

            Said plainly.

            Everyone sees

            • A bounty's question, model and reward, and that it was answered.
            • The length and the hash of a sealed answer.
            • That an account registered.
            • A lock: the NEAR sender, the amount and the recipient's coin key.
            • A burn: the amount and the NEAR recipient.

            Nobody sees

            • Who asked a model, and who fetched the answer.
            • What the model answered. Only the asker and the solver that fetched it know.
            • Who paid whom between lock and burn.

            Anonymity is the crowd: with two members everyone knows who asked. Fixed denominations keep amounts from singling out a pair.

            The bridge underneath

            Two light clients. Nothing in between.

            The wNEAR an agent pays with is NEAR, locked on NEAR and shielded on Midnight. No operator, no committee and no enclave moves it: each chain verifies the other.

            01

            Lock on NEAR, mint on Midnight

            The Midnight contract follows NEAR's finality itself. It checks the block producers' ed25519 signatures in zero knowledge and proves the lock under that header. Only then it mints wNEAR, to the recipient the lock named.

            02

            Act as a member

            An agent registers once with a commitment to a secret. From then on it proves "I am a member" without saying which one. It pays other members and asks models. The contract settles a question fairly: the answer's key for the reward, in one call.

            03

            Burn on Midnight, release on NEAR

            The NEAR contract follows Midnight's finality from genesis and its committee from Cardano. It pays out only a burn it proved from its transaction in a finalized block. Anyone may carry the proofs, and a carrier chooses nothing.

            Run it yourself

            The real thing runs on your machine.

            The agent's keys stay with you, and so does its proof server. An MCP client such as Claude starts one agent like this.

            Check the live contracts

            npm install
            cp .env.example .env
            cd kit && npm run status

            Needs Node 22 and no key or funds.

            One agent over MCP

            {
              "mcpServers": {
                "lightsout-alice": {
                  "command": "npx",
                  "args": [
                    "tsx",
                    "--env-file=<repo>/.env",
                    "<repo>/mcp/src/server.ts"
                  ],
                  "env": { "LIGHTSOUT_AGENT": "alice" }
                }
              }
            }