v0Docs

The rules,
in one place.

What the contracts do, where they live and how to check them without trusting this site.

Lifecycle

One pawn is six calls. Each one is a transaction anyone can read on the explorer.

  1. 1

    Mint Borrower

    The registry creates a keyless pack and gives the borrower its Title.

  2. 2

    Seal Borrower

    Coins move from NEAR Intents into the pack.

  3. 3

    Offer Borrower

    The Title holder lists a loan, a repayment and a term.

  4. 4

    Fill Lender

    The lender pays the loan and takes the Title. The borrower gets a Ticket.

  5. 5

    Redeem Ticket holder

    Pays the repayment before the date. The coins go to the Ticket holder.

  6. 6

    Expire Anyone

    After the date, closes the pawn. The coins stay with the Title holder.

Rules

Enforced by the contracts. No price feed is read at any step.

Term
7 days to 180 days on mainnet; from 10 minutes on testnet
Grace
1 day after the date, only when NEAR Intents paused or locked the pack in the last day
Cap per pack
1 ZEC · 0.01 BTC · 5 SOL · 1,000 USDC
Keys on a pack
Zero. A pack with any key is refused.
Fee
None in v0
Guardian
Can pause new pawns. Cannot move coins or change a running pawn.

Contracts

Every pack runs one published global contract. Compare the hash with the build from source.

TestnetLive
NEAR Intents verifier
intents.mosaec.testnet
Registry code hash
7XzqvXMawMojL1mYSJbw15ha6BoLg7vV8S1YgCHTyUxg
Pack code hash
4NVfLnVFYQxUPfsHRGpU6h8eKmp2AbQxNR2mYNx3Bwzc
MainnetPlanned
Registry
v0.mosaec.near
NEAR Intents verifier
intents.near
Registry code hash
Not deployed
Pack code hash
Not deployed

Verify a pack

Three reads with the NEAR CLI. The app runs the same checks on every pack page.

terminal
# 1. Terms and holdersnear view v0.mosaec.testnet position_of '{"pack":"0.v0.mosaec.testnet"}' --networkId testnet# 2. Stage and contentsnear view 0.v0.mosaec.testnet status --networkId testnet# 3. No keys: expect an empty listnear list-keys 0.v0.mosaec.testnet --networkId testnet

Agents

The house desk speaks MCP. Any agent can read the book and quote a pawn; filling needs a token.

Endpoint
https://desk.mosaec.finance/mcp
Read
desk_policy · list_offers · quote_offer · prepare_fill
Write
fill_offer, behind a bearer token
Bring your own agent

Errors

Every refusal carries a code. The app shows the plain words; a refused payment always comes back.

E_KEYSThis pack holds a signing key, so it is unsafe to use.
E_PRED_AUTH_OFFThis pack has direct account access turned off.
E_VERIFIER_LOCKEDNEAR Intents has locked this pack.Retry
E_CONTENTSThe pack contents changed since the offer was made.
E_TERMSThe terms differ from the offer or sit outside the allowed range.
E_PENDINGAnother transfer on this pawn is still settling.Retry
E_EXPIREDThe offer or the term has ended.
E_HOLDEROnly the holder of the required Title or Ticket can do this.
E_STATEThe pawn is in a stage that refuses this action.
E_CAPThe amount is above the per-pack limit.
E_NOT_VERIFIEROnly NEAR Intents can send this transfer.
E_NOT_PACKOnly a Mosaec pack can make this call.
E_NOT_REGISTRYOnly the Mosaec registry can make this call.
E_TOKENThis token is outside the supported list.
E_AMOUNTThe amount is zero or differs from the required value.
E_MSGThe transfer message is unreadable.
E_STORAGEThe attached NEAR is too little to cover storage.
E_MIN_WITHDRAWThe withdrawal is below the bridge minimum.
E_BATCHToo many tokens, or one token listed twice.
E_SELF_FILLThe lender and the borrower are the same account.
E_GASThe transaction carries too little gas for every step.
E_GRACEThe grace window is open, so the pawn stays live until it ends.
E_PAUSEDNew pawns are paused.Retry
E_NOT_GUARDIANOnly the guardian can do this.