Skip to content

Share and Earn

Publish a small set of facts to your Public profile account. Agents pay you per recall, in USDC on Sui, and see only what you published there.

Share Cards

Asking Ferry Gate who owns the Public profile account

Earnings

Sign in with the wallet that receives payments to see what agents paid you.

Publish facts

Pick the facts agents may buy. Ferry downloads them as a file, and you publish it from your machine with the Public profile key. Conversation and quote hashes are replaced with a constant before anything is written.

Facts from your memory

Open and pair Ferry in this browser to pick facts from your memory.

Then, from the Ferry repo
pnpm publish-public ferry-public-facts.json

Try it with an agent

TripScout is a 15 line agent built on @ferry/sdk. It asks your card for food preferences, gets a 402 from Gate, pays 0.01 USDC on Sui Mainnet, and prints the facts with the transaction link.

examples/tripscout/index.ts
// TripScout: a travel agent that buys one fact from a Ferry Share Card for 0.01 USDC on Sui.
import { ferry } from '@ferry/sdk';
import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';

const key = process.env['TRIPSCOUT_PRIVATE_KEY'];
const cardId = process.env['TRIPSCOUT_CARD_ID'];
if (!key?.startsWith('suiprivkey') || !cardId) throw new Error('Set TRIPSCOUT_PRIVATE_KEY and TRIPSCOUT_CARD_ID.');
const payer = Ed25519Keypair.fromSecretKey(key);

const { results, payment } = await ferry.card(cardId).recall('food preferences', { payer });
for (const fact of results) console.log(`- ${fact.text} (heard in ${fact.sources.join(', ')})`);
console.log(`Paid ${Number(payment.amountMicros) / 1e6} USDC, receipt ${payment.receiptId}`);
console.log(`https://suiscan.xyz/mainnet/tx/${payment.digest}`);