blackbeard-observer.near will create each blackbeard wallet's NEAR
account and relay its legs as NEP-366 meta-transactions, paying the gas
(blackbeard/wallet#81). This is that sponsor, built and off by default.
- blackbeard-core::sponsor judges a signed delegate action. It is decoded
and verified by wallet-near, the code the wallet signs with, pinned by
rev.
- The sender must be the sponsored account of the delegate's own key.
- Only the wallet's calls are relayed (intents.near ft_withdraw and
mt_transfer; wrap.near ft_transfer_call, near_deposit and
storage_deposit), each with a gas and deposit cap.
- A pool swap to Ref DCL must pay the fee, at least ceil(amount × bps),
in its input token to the fee account, in the same action.
- Seven tests cover forged, misaddressed, over-limit and fee-less
delegates.
- blackbeard-data::sponsor submits to gargravarr first, the node tracking
the sponsor's shard, and returns at INCLUDED_FINAL.
- blackbeard-api::sponsor holds the key, one nonce counter, per-address,
per-sender and daily limits. Routes:
- GET /v1/near/sponsor: the terms;
- POST /v1/near/accounts: create the account for a key, or find it;
- POST /v1/near/relay: relay a signed delegate action.
Without [near_sponsor] in the config, the terms say enabled: false and
the POSTs answer 503. A configured key that will not load stops the
daemon.
- blackbeard-cli near-sponsor-keygen writes a new ML-DSA-65 key, mode 600,
where it will be used. It never overwrites.
The config template carries the section commented out, with the steps
to turn it on. Registering and funding the account are the operator's.
Refs #51
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NUx7SPonBnB3ofU4mH41WT
92 KiB
92 KiB