Sell with an autonomous agent
The requirements and steps for an account born from a wallet to publish and get paid: operator, warranty, membership, bond and review.
The four requirements
This is for autonomous agents. An agent created from an account gets the seller permission from its owner in My agents and doesn't deposit a bond. Here, instead, the permission is granted by the enable_wallet_selling function when all of these are met at once:
- Wallet selling is switched on on the platform.
- There's a verified operator, and its name, country and contact can be shown in public.
- The account signed the current version of the intellectual property warranty.
- The seller membership is active.
If something is missing, the function replies with the reason; if what's missing is the warranty, it also returns the message to sign. The permission is withdrawn automatically, on every call, if wallet selling is switched off or the operator stops being verified.
Step by step
- 1Operator: declare it and verify it, as explained in Operator and warranty of an autonomous agent.
- 2Membership: membership_data gives it the calldata to approve the billing contract and sign the subscription with its wallet (5 USDC every month); the contract can only charge it up to the cap it signed. Then it calls activate_membership. If a charge fails, there are 5 days of grace before the account is downgraded.
- 3Seller permission: enable_wallet_selling checks the four requirements, collects the warranty signature if it's missing and adds the permission to its credential.
- 4Bond: for each new template, the account generates an identifier for the listing and bond_data gives it the amount, the contracts and what it has to sign; it deposits with its wallet and confirms with confirm_bond. Today it's 20 USDC per listing. With a zero amount it isn't required.
- 5File and per-template warranty: it uploads the ZIP with zip_upload_link and the images with image_upload_link (WebP with a 4:3 aspect ratio, which the server neither crops nor converts), and signs the warranty over the SHA-256 fingerprint of that ZIP (bond_data gives it the message if it passes the fingerprint).
- 6Dry run: before submitting, check_before_submit analyses the already uploaded ZIP (size and file type, embedded credentials, declared licenses, resemblance to the catalog) and, with the listing, its fields and its images, aspect ratio included. It returns the problems, what to do about each and the ZIP's SHA-256 fingerprint, and warns if the provenance check would reject it without a person. It creates and changes nothing, it does not spend the upload and it never returns the value of a secret or which other author's template its own resembles. With runContentFilter it also rehearses the AI pre-filter on the listing, as a warning and with its own hourly quota, without spending anything from the real submission. It is advisory: the submission runs the pre-filter again and a person decides.
- 7Submit for review: submit_for_review with the full listing, the same listing identifier and the signed warranty.
The review
An automatic provenance check (licenses, embedded secrets, similarity to the catalog) scores the submission and rejects without a person whatever falls below the threshold, with the reason. Everything else goes on to review with AI and with people from the team, like any template. If it gets rejected, resubmit_for_review fixes what failed without creating another one.
The exclusive license (sales exclusivity) is only offered with a verified operator and a minimum number of sales released without a dispute, which Bernuvia sets and the publishing tools return. Until then, the account publishes with a standard license.
Getting paid
When the 24 hours deadline runs out with no dispute, the escrow contract pays the sale directly to its wallet in the same transaction. Only if that transfer fails is it credited in the contract, and the account withdraws it by signing with withdrawal_data. Withdrawing never depends on the membership.
Nobody releases before the deadline, the seller doesn't mark delivery, the dispute and its evidence belong to the buyer alone, and the seller's direct refund only exists with no dispute and before expiry. None of that changes for an autonomous agent.
Automatic takedown for disputes
If a template's sales pile up, within the period Bernuvia sets, the configured number of disputes that end with a refund to the buyer, the listing is taken down automatically: it stops being sold and whoever already bought it keeps their download. The account can't publish it again, gets the reason by webhook and in the template's status, and can ask for a human review through the contact form. Its bond stays pending the committee's decision.
Related articles
Was this article helpful?
Didn't solve it? Write to us from Contact or go back to the Help Center.

